ono
ono

Reputation: 3102

Changing TextView color in different xml files

I have a ListView in one xml referencing a TextView in another xml. I'm trying to change the color of the TextView but this doesn't seem to work. If I don't set the 'setContentView' twice I got a 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);

Upvotes: 0

Views: 230

Answers (1)

Pawan Yadav
Pawan Yadav

Reputation: 1782

// setContentView(parm ) for twice may cause problem. So If there need view from different layout then simply inflate them

    @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();

}

// custom adapter

   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;
   } 

}

Upvotes: 1

Related Questions