Невозможно изменить изображение из списка - PullRequest
0 голосов
/ 20 марта 2012

Я пытаюсь изменить изображение при нажатии на элемент списка в просмотре списка.Это то, что люди говорят, что использовать, но это не работает.в файле журнала указано, что в строке 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 есть только файлы изображений

Ответы [ 3 ]

0 голосов
/ 20 марта 2012

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

@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 голосов
/ 20 марта 2012

Трассировка стека говорит, что проблема в строке 42. Если вы на 100% уверены, что это строка 42,

image.setImageResource(R.drawable.lighton);

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

SO, при условии, что это строка 42,

Либо

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

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

По сути, либо то, что вы пытаетесь установить, либо то, где вы пытаетесь его установить, является нулевым.Один или другой, или, если вам не повезло, оба.

0 голосов
/ 20 марта 2012

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

Возможно, вам стоит попробовать

YOUR_ACTIVITY_NAME.this.image

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...