2016-03-27 16 views
0

ListViewの特定のアイテムの色を変更しようとしています。それはNullPointerExceptionでクラッシュする、私は確かになぜ、私はアダプタが作成されていない/ ListViewにビューを追加したので、それは配列上にないアイテムを取得しようとしていると思うのではない。リストに少なくとも1つの項目があるときはいつでも、色の付いた項目を完全に追加できます。どうすれば解決できますか?ビューを追加するAndroid ListViewアダプタ

 int index = 0; 
    for(ItemEntry i: tentry) { 
     adapter.add(i.Name); // Adding to Adapter 
     adapter.notifyDataSetChanged(); // Telling it I've done so 
     long time = TimeUnit.MILLISECONDS.toDays(i.Date.getTime() - System.currentTimeMillis()); 
     ListView stuff = (ListView) this.findViewById(R.id.contentsList); 
     if(time < 0) { 
      stuff.getChildAt(index).setBackgroundColor(Color.RED); // Null exception 
     } else if(time < 1) { 
      stuff.getChildAt(index).setBackgroundColor(Color.RED); // Null exception 
     } else if(time < 2) { 
      stuff.getChildAt(index).setBackgroundColor(Color.YELLOW); // Null exception 
     } 
     index++; 
    } 
+0

クラッシュログお願い – Msk

答えて

0

このようなUI変更を行うためにインデックスで子供に手を届かないでください。これは、トラブルのために物乞いだ:

stuff.getChildAt(index).setBackgroundColor(Color.RED); // Null exception 

は代わりに、個々の項目がどのような背景色を持つべきかを決定するいくつかのロジックに基づいて、あなたのアダプタのgetViewメソッド内のアイテムのビューへの変更を()します。

関連する問題