آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ارور NullPointerException هنگام Onclick روی لیست ویو

شکیب  6 سال پیش  6 سال پیش
0 0

سلام دوستان وقتتون بخیر
من تو برنامه ام یه کاستوم لیست ویو دارم که با جیسون پر میشه و برای پر کردن عکس هاش از bitmap استفاده کردم و می خوام روی هر آیتم که کلیک شد آی دی اون آیتم رو که تو یه TextView ریختم بگیرم 

 
lView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
try {
hotel_id = (int) adapterView.getItemIdAtPosition(i);
TextView id= (TextView) lView.getChildAt(i).findViewById(R.id.aNametxt);
type_id_post = deleteIcon.getText().toString();

backgroundTask = new BackgroundTask(textView);
backgroundTask.execute();

Intent intent = new Intent(RoomList.this, RoomPopUp.class);
startActivity(intent);

}
catch (RuntimeException e){
e.printStackTrace();
}
}
});

 و کد برای 2 آیتم اول لیست کار میکنه ولی برای آیتم های بعدی کد در خطی که TextView id داره تعریف میشه متوقف میشه و warning زیر رو میده کسی میدونه چرا اینجوری میشه؟

08-07 11:43:36.026 14747-14747/com.moalem.khane.khanemoalem W/System.err: java.lang.NullPointerException
08-07 11:43:36.026 14747-14747/com.moalem.khane.khanemoalem W/System.err: at com.test.RoomList$1.onItemClick(RoomList.java:126)
08-07 11:43:36.026 14747-14747/com.moalem.khane.khanemoalem W/System.err: at android.widget.AdapterView.performItemClick(AdapterView.java:299)
08-07 11:43:36.026 14747-14747/com.moalem.khane.khanemoalem W/System.err: at android.widget.AbsListView.performItemClick(AbsListView.java:1158)
08-07 11:43:36.026 14747-14747/com.moalem.khane.khanemoalem W/System.err: at android.widget.AbsListView$PerformClick.run(AbsListView.java:2957)
08-07 11:43:36.026 14747-14747/com.moalem.khane.khanemoalem W/System.err: at android.widget.AbsListView$3.run(AbsListView.java:3849)
08-07 11:43:36.026 14747-14747/com.moalem.khane.khanemoalem W/System.err: at android.os.Handler.handleCallback(Handler.java:733)
08-07 11:43:36.026 14747-14747/com.moalem.khane.khanemoalem W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
08-07 11:43:36.026 14747-14747/com.moalem.khane.khanemoalem W/System.err: at android.os.Looper.loop(Looper.java:136)
08-07 11:43:36.026 14747-14747/com.moalem.khane.khanemoalem W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5105)
08-07 11:43:36.026 14747-14747/com.moalem.khane.khanemoalem W/System.err: at java.lang.reflect.Method.invokeNative(Native Method)
08-07 11:43:36.026 14747-14747/com.moalem.khane.khanemoalem W/System.err: at java.lang.reflect.Method.invoke(Method.java:515)
08-07 11:43:36.026 14747-14747/com.moalem.khane.khanemoalem W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
08-07 11:43:36.026 14747-14747/com.moalem.khane.khanemoalem W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
08-07 11:43:36.026 14747-14747/com.moalem.khane.khanemoalem W/System.err: at dalvik.system.NativeStart.main(Native Method)
+1 0
متوجه نمیشم چرا از این روش استفاده میکنی؟ کاری که میخوای بکنی چی هست یعنی ایدی رو برای چی نیاز داری ، به نظرم راهای خیلی منطقی تری وجود داشته باشه (6 سال پیش)
0 0
ایدی رو میخوام برای سرور بفرستم که بفهمه رو کدوم آیتم کلیک شده . راه درستش چجوریه ؟ میشه یکم توضیح بدین ؟ (6 سال پیش)
+1 0
شما دقیقا دارید توی کدوم خط آی دی میگیرید ؟ (6 سال پیش)
0 0
من آیدی هر آیتم رو ریختم توی تکست ویو R.id.aNametxt و حالا میخوام روی هر کدوم که کلیک شد مقدار همون تکست ویو رو بردارم بریزم یه جا دیگه . تو خط های (TextView id= (TextView) lView.getChildAt(i).findViewById(R.id.aNametxt و خط بعدیش این کار رو دارم انجام میدم. (6 سال پیش)
+1 0
توي پروژه ي ماشي حساب ، استاد براي نيازي مشابه نياز شما از Tag استفاده كرد ، شما هم از تگ استفاده كنيد (6 سال پیش)
0 0
کدش چجوری میشه یعنی؟ (6 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .