Настраиваемый просмотр списка NullPointerException

1

У меня есть пользовательский SimpleCursor listView и хронометр. Я пытаюсь сделать, когда Chronometer (таймер) равен 00:10. Нарисуйте цвет строки, но его выброс NullPointerException.

Спасибо U за помощь Вот код:

public class ListViewcursorActivity extends ListActivity {
/** Called when the activity is first created. */
Chronometer timer;
ListView lvItems;
SimpleCursorAdapter colours;
private testDBAdapter thisTestDBAdapter;
LinearLayout[] Row;
View[] v;
@Override
public void onCreate(Bundle savedInstanceState) {

    thisTestDBAdapter = new testDBAdapter(this);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    lvItems =getListView();fillData();

    timer = (Chronometer)findViewById(R.id.chronometer1);

    timer.setBase(android.os.SystemClock.elapsedRealtime());
    timer.start();

     Row =new LinearLayout[lvItems.getCount()];
     v = new View[lvItems.getCount()];
    for(int i=0;i<lvItems.getChildCount();i++) {
        v[i] =lvItems.getChildAt(i);
        Row[i] = (LinearLayout)v[i].getParent();    
    }
    timer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {

        public void onChronometerTick(Chronometer chronometer) {
            // TODO Auto-generated method stub
            for(int i=0;i<lvItems.getChildCount();i++){

            //  TextView child =(TextView)Row[i].getChildAt(0);
                if(  chronometer.getText().toString().equalsIgnoreCase("Timer: 00:10")){

                    try {
                        Row[1].setBackgroundColor(Color.RED);
                    } catch (NullPointerException e) {
                        // TODO Auto-generated catch block
                        Toast.makeText(ListViewcursorActivity.this, e.toString(), Toast.LENGTH_SHORT).show();
                    }
                }

            }
    }
    });
}

Проблема заключается в следующем://TextView child = (TextView) Row [i].getChildAt(0); и Row [1].setBackgroundColor(Color.RED);

    06-02 17:00:57.263: E/AndroidRuntime(869): Uncaught handler: thread main exiting due to uncaught exception
06-02 17:00:57.263: E/AndroidRuntime(869): java.lang.NullPointerException
06-02 17:00:57.263: E/AndroidRuntime(869):  at net.deneme.cursorlist.ListViewcursorActivity$1.onChronometerTick(ListViewcursorActivity.java:91)
06-02 17:00:57.263: E/AndroidRuntime(869):  at android.widget.Chronometer.dispatchChronometerTick(Chronometer.java:276)
06-02 17:00:57.263: E/AndroidRuntime(869):  at android.widget.Chronometer$1.handleMessage(Chronometer.java:268)
06-02 17:00:57.263: E/AndroidRuntime(869):  at android.os.Handler.dispatchMessage(Handler.java:99)
06-02 17:00:57.263: E/AndroidRuntime(869):  at android.os.Looper.loop(Looper.java:123)
06-02 17:00:57.263: E/AndroidRuntime(869):  at android.app.ActivityThread.main(ActivityThread.java:4363)
06-02 17:00:57.263: E/AndroidRuntime(869):  at java.lang.reflect.Method.invokeNative(Native Method)
06-02 17:00:57.263: E/AndroidRuntime(869):  at java.lang.reflect.Method.invoke(Method.java:521)
06-02 17:00:57.263: E/AndroidRuntime(869):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
06-02 17:00:57.263: E/AndroidRuntime(869):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
06-02 17:00:57.263: E/AndroidRuntime(869):  at dalvik.system.NativeStart.main(Native Method)
06-02 17:00:57.273: I/dalvikvm(869): threadid=7: reacting to signal 3
06-02 17:00:57.273: E/dalvikvm(869): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
  • 0
    какую строку вы получаете исключение нулевого указателя ....... журнал кошка, пожалуйста ........
  • 0
    проблемы: TextView child = (TextView) Row [i] .getChildAt (0); и Row [1] .setBackgroundColor (Color.RED);
Показать ещё 11 комментариев
Теги:
view
listview
viewgroup

4 ответа

1
TextView child =(TextView) Row[i].getChildAt(0);

почему бы не получить его по id?

LinearLayout row = (LinearLayout) Row[i];
if(row != null) {
    TextView textView = (TextView) row.findViewBy(R.id.textviewid);
    if(TextView != null)
       //do stuff
}

Это помогает?

Также посмотрите больше на код, что такое Row? Линьерлайот? это нечеткий код. Может быть, организовать немного лучше.

  • 0
    Я не могу использовать R.id.bla .. Потому что я использую динамический курсор List View; Как здесь: androidforbeginners.blogspot.com/2010/03/…
0

Исключение Null Pointer обычно означает, что вы пытаетесь получить доступ к тому, что не существует в текущем контексте.

Убедитесь, что ваш XML правильно указан в Java-коде.

  • 0
    извините, я не могу добавить XML-файл. Но я уверен, что дело не в XML-файле, спасибо
0

Я не вижу, чтобы адаптер был настроен на список в любом месте вашего onCreate. Установите адаптер и проверьте, не устраняет проблему. Элементы будут созданы, и они будут иметь родителей после установки адаптера.

  • 0
    Адаптер FillData ()
0

Для исключения nullpointer вы можете использовать отладку для отслеживания исключения nullpointer, и он может указать вам, где возникает исключение nullpointer.

  • 0
    хорошо, я понял, почему я получаю ноль, это lvItems.getChildAt (я), он отправляет мне ноль. но как я могу получить детей?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню