0

그래서 커서 아답터로 좋은 목록을 얻었습니다.조건부로 ListView를 형식화합니다. 함수는 OnListItemClick()에서만 작동하지만 OnCreate()에서는 작동하지 않습니다.

생성 후, 나는 그들이 보유 값의 종류에 따라 행 색상을 시도하고있다. 아래에서이 기능을 사용합니다. 문제 :

"list.setOnItemClickListener() ..."에서이 함수를 호출하면 완벽하게 실행됩니다. "텍스트 뷰의 TV = (텍스트 뷰) childview.findViewById (R.id.row_eszkoz_leltarozott_allapot);"내 에서 OnCreate()에서 호출 할 경우
는하지만,
나는 내에서 nullpointerexeption를 얻을 수 열.

이 원인은 무엇입니까? CursorAdapter 재정 Btw는 getView()

new SimpleCursorAdapter(getActivity(), 
         R.layout.rowlayout, 
         null (opt cursor), 
         fromColumns, 
         toLayout, 0) { 
     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View row = super.getView(position, convertView, parent); 
      row.findViewByID(...) 
          ...enter code here... 
      return row; 
     } 
} 

에서

public void ConditionalColoring() 
{ 
    for (int position=0; position<adapter.getCount(); position++) 
    { 
     System.out.println("adapter child szám: " + adapter.getCount()); 
     View childview = list.getChildAt(position); 

     //View childview = adapter.getView(position, null , list); 
     TextView tv = (TextView) childview.findViewById(R.id.row_eszkoz_leltarozott_allapot); ///ERROR HERE 
     RelativeLayout RL = (RelativeLayout) childview.findViewById(R.id.row_eszkoz_container); 
     String s = (String) tv.getText(); 
     System.out.println("szöveg: " + s); 

     if (s.equals("leltárazva")) { 
      int holoblue = activity.getResources().getColor(android.R.color.holo_blue_light); 
      RL.getBackground().setColorFilter(holoblue,PorterDuff.Mode.MULTIPLY); 
     } 
     else if (s.equals("leltározandó")) { 
      int hologreen = activity.getResources().getColor(android.R.color.holo_blue_light); 
      RL.getBackground().setColorFilter(hologreen,PorterDuff.Mode.MULTIPLY); 
     } 
     else if (s.equals("módosítási tranzakció szükséges")) { 
      int holored = activity.getResources().getColor(android.R.color.holo_blue_light); 
      RL.getBackground().setColorFilter(holored,PorterDuff.Mode.MULTIPLY); 
     } 
     else { 
     } 
    } 
} 
+0

당신이 당신의 목록보기 용 어댑터를 설정 한 후 해당 메서드를 호출해야합니다. – SKK

+0

나는 또한 "list.setAdapter (어댑터);"다음에 똑같은 일이 일어난다. TextView 행에서 nullpointerexeption. – user2717743

답변