مشکل ناشناخته
سلام دوستان من یک لیست ویو طبق آموزشهای استاد در Android Studio ساختم .
اما در اجرای اکتیویتی لیست ویو برنامم دچار مشکله و اصلا نتونستم درستش کنم : خطای زیر رو بهم میده :
adapternote که همون کلاس مربوط به لیست ویو هستش و EnglishToPersian اکتیویتی ای هست که باید لیست ویو درون ان نمایش داده شود : در کلاس adapterNote از خط زیر مشکل گرفته :
public AdapterNote(ArrayList<StructNote> array) {
super(G.context,R.layout.lists,array);
}
at com.mysite.apps.AdapterNote.<init>(AdapterNote.java:17)
at com.mysite.apps.materialdesign1.EnglishToPersianPrice.onCreate(EnglishToPersian
درضمن در اکتیویتی حاضر نیز از خد زیر خطا گرفته است :
ArrayAdapter adapter = new AdapterNote(G.notes);
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.mysite.apps.materialdesign1/com.mysite.app.materialdesign1.EnglishToPersianPrice}:
java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
at android.app.ActivityThread.access$600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.mysite.apps.materialdesign1.EnglishToPersianPrice.onCreate(EnglishToPersianPrice.java:41)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
at android.app.ActivityThread.access$600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
فک کنم شما باید یک آدپتور از جنس خود کلاس آدپتور بسازید مثل زیر
البته سوالتون خیلی واضح نبود اما امیدوارم کمک کنه
AdapterNote adapter = new AdapterNote(notes);
این مورد حلش نکرد. مشکلش اینه که لیست ویو ساخته نمیشه. یک layout هست بنام lists که ظاهر لیست ویو درون اونه.چندتا editText هست. بعد یک list_persian هستش که قراره یک لیست باشه. حالا اکتیویتی engToPersian قراره این لیست رو پر کنه : اکتیویتی زیر . چندتا Layout دیگه داخل این اکتیویتی تست کردم سالم بود و کار میکرد ونشون میداد اما کد زیر رو خطا میگیره و کرش میکنه :
public class EnglishToPersianPrice extends Activity {
ArrayAdapter adapter;
@Override
protected void onResume() {
super.onResume();
G.currentActivity=this;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_eng_persian);
ListView lstContents = (ListView) findViewById(R.id.mylists);
try{
adapter = new AdapterNote(G.notes);
}catch (Exception e){
e.printStackTrace();
}
lstContents.setAdapter(adapter);
G.notes.clear();
StructNote Gold = new StructNote("آیتم اول", "توضیحات آیتم اول", "11000");
StructNote Silver = new StructNote("آیتم دوم", "توضیحات آیتم دوم", "7000");
StructNote Bronze = new StructNote("آیتم سوم", "توضیحات آیتم سوم", "5500");
G.notes.add(Gold);
G.notes.add(Silver);
G.notes.add(Bronze);
adapter.notifyDataSetChanged();
}
}
ببینید کد بالا رو من سه خط زیر بهش اضافه کردم تا در Logcat عنوان آیتم ها را چاپ کنه . حالا فقط خط آخرو خطا میگیره .
adapter.notifySetDateChange() -
کدهای زیر رو اضافه کردم و درست و صحیح در Logcat چاپ رو نشون داد ولی لیست ویو رو نساخت :
Log.i("LOG", "Gold Title : " + Gold.title);
Log.i("LOG", "Silver Title : "+Silver.title);
Log.i("LOG","Bronze Title : "+Bronze.title);
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .