2012-03-20 2 views
0

Im пытается изменить изображение при щелчке элемента списка в списке. Это то, что говорят ppl, но оно не работает. в файле журнала говорится, что в строке setimageresource имеется исключение с нулевым указателем. Есть идеи?Невозможно изменить изображение из списка

listview.setOnItemClickListener(new OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 

     if(arg2 == 0){ 
      image.setImageResource(R.drawable.lighton); 
     } 
      else 

       image.setImageResource(R.drawable.lightoff); 
    } 
}); 

Logcat

ERROR/AndroidRuntime(712): Uncaught handler: thread main exiting due to uncaught exception 
ERROR/AndroidRuntime(712): java.lang.NullPointerException 
ERROR/AndroidRuntime(712):  at com.Sonny.HCIProject.LightSetting$1.onItemClick(LightSetting.java:42) 
ERROR/AndroidRuntime(712):  at android.widget.AdapterView.performItemClick(AdapterView.java:283) 
ERROR/AndroidRuntime(712):  at android.widget.ListView.performItemClick(ListView.java:3132) 
ERROR/AndroidRuntime(712):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:1620) 
ERROR/AndroidRuntime(712):  at android.os.Handler.handleCallback(Handler.java:587) 
ERROR/AndroidRuntime(712):  at android.os.Handler.dispatchMessage(Handler.java:92) 
ERROR/AndroidRuntime(712):  at android.os.Looper.loop(Looper.java:123) 
ERROR/AndroidRuntime(712):  at android.app.ActivityThread.main(ActivityThread.java:3948) 
ERROR/AndroidRuntime(712):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-20 03:54:48.702: ERROR/AndroidRuntime(712):  at java.lang.reflect.Method.invoke(Method.java:521) 
03-20 03:54:48.702: ERROR/AndroidRuntime(712):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782) 
03-20 03:54:48.702: ERROR/AndroidRuntime(712):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540) 
03-20 03:54:48.702: ERROR/AndroidRuntime(712):  at dalvik.system.NativeStart.main(Native Method) 

Drawable папка только файлы изображений

+1

положить свой полный логарифм .... –

+0

И покажите нам свою привлекательную структуру папок ресурсов, если это возможно. – Calvin

+0

Я думаю, что ваш неверный идентификатор изображения –

ответ

0

Что такое изображение? Где это? Он инициализирован? Пожалуйста, больше листинга.

Может быть, вы должны попробовать

YOUR_ACTIVITY_NAME.this.image 

Или, может быть, не

+0

image is imageView, который настроен на идентификатор вида – codingNightmares

+0

вот код 'code' ImageView; \t image = (ImageView) findViewById (R.drawable.lighton); – codingNightmares

0

Если изображение элемент в списке, то вы должны сделать так:

@Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 
      ImageView img=(ImageView)arg1.findViewById(R.id.image); 
      img.setImageDrawable(getResourses().getDrawable(R.drawable.drawable1)); 
    } 
}); 

Если его нет элемент в списке, ваш код должен работать, если вы создали экземпляр

+0

Я создал экземпляр изображения, дал ему идентификатор изображения в xml и все еще ничего – codingNightmares

+0

изображение - это элемент в виде списка? или внешний вид списка? –

0

Трассировка стека говорит об ошибке m находится в строке 42. Если вы на 100% уверены, что это линия 42,

image.setImageResource(R.drawable.lighton); 

затем ОК. Если это не так, отправьте строку 42 в качестве комментария.

SO, при условии, что линия 42,

Либо

  1. Проверьте импорт на top-- убедитесь, что он import my.project.R; и не import android.R;

  2. image равна нулю. Вы его создаете?

В принципе, то, что вы пытаетесь установить или где вы пытаетесь установить его, равно null. Тот или другой, или если вам не повезло, то и другое.

+0

Итак, я импортировал свой проект, как вы сказали, и ничего, также я создал экземпляр изображения для изображения, например lightOn = new ImageView (LightSetting.this); \t lightOn = (ImageView) findViewById (R.id.lightimage); то в методе onclick я все еще получаю ошибку null exceptio в этом же месте \t \t \t \t lightOn.setImageResource (R.drawable.lighton); Я полностью в тупике – codingNightmares

Смежные вопросы