0

ある xml に ListView があり、別の xml の TextView を参照しています。TextView の色を変更しようとしていますが、うまくいかないようです。「setContentView」を 2 回設定しないと、NullPointerException が発生します。

 setContentView(R.layout.text_list);
          TextView textView = (TextView) findViewById(R.id.logText);

          if (logLevel == "E"){
              textView.setTextColor(Color.parseColor("#FF4D4D"));
          }
          else if (logLevel == "W"){
              textView.setTextColor(Color.parseColor("#EAAB55"));
          }
          else if (logLevel == "I"){
              textView.setTextColor(Color.parseColor("#AFD778"));
          }
          else if (logLevel == "V"){
              textView.setTextColor(Color.parseColor("#OOOOOO"));
          }
          else {
              textView.setTextColor(Color.parseColor("#AFD778"));
          }

          setContentView(R.layout.log_cat);
          ListView lv1 = (ListView) findViewById(R.id.listView1);

          ArrayAdapter<String> arrayAdapter = 
                     new ArrayAdapter<String>(this, R.layout.text_list, log);
4

1 に答える 1

1

// setContentView(parm ) を 2 回使用すると問題が発生する可能性があります。したがって、別のレイアウトからのビューが必要な場合は、単にそれらを膨らませます

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.log_cat);
      ListView lv1 = (ListView) findViewById(R.id.listView1);

       CustomAdapter adapter = new CustomAdapter(this, "V");
           lv1 .setAdapter(adapter);
          adapter.notifyDataSetChanged();

}

// カスタム アダプタ

   public class CustomAdapter extends BaseAdapter {

private Context ctx;
private String logLevel;

CustomAdapter (ArrayList<String> data, Context context, String log) 
{ 

     this.ctx = context;
     this.logLevel = log;
} 

@Override
public int getCount()  
{ 
    list.size();

} 

@Override
public Object getItem(int position)  
{ 
    return  null; 
} 

@Override
public long getItemId(int position)  
{ 
    return position ; 
} 

@Override
public View getView(int position, View convertView, ViewGroup parent)  
{ 
     LayoutInflater inflator = (LayoutInflater)ctx.getSystemService(LAYOUT_INFLATER_SERVICE);
     View v = inflator.inflate(R.layout.text_list, null);

     TextView textView = (TextView) v.findViewById(R.id.logText);

     if (logLevel == "E"){
         textView.setTextColor(Color.parseColor("#FF4D4D"));
     }
     else if (logLevel == "W"){
         textView.setTextColor(Color.parseColor("#EAAB55"));
     }
     else if (logLevel == "I"){
         textView.setTextColor(Color.parseColor("#AFD778"));
     }
     else if (logLevel == "V"){
         textView.setTextColor(Color.parseColor("#OOOOOO"));
     }
     else {
         textView.setTextColor(Color.parseColor("#AFD778"));

         textView.setTextColor(Color.BLUE);
     }
     return textView;
   } 

}

于 2013-06-05T17:01:54.380 に答える