2012-02-16 33 views
0

我有一個listView,一個主要的xml文件和一個customListview xml文件。 爲我的listView我正在使用我製作的自定義ArrayAdapter。Android:setImageResource與LayoutInflater

現在,我想設置一個圖像作爲我的MainActivity類中的資源。 問題是,圖像是在另一個XML,而不是在這我設置contentView。

我想這個代碼,但沒有任何反應:

LayoutInflater mInflater=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE); 
View view=mInflater.inflate(R.layout.custom_row_view,null); 
ImageView statusOk=(ImageView)view.findViewById(R.id.statusOkImage); 
statusOk.setImageResource(R.drawable.ic_launcher); 

如果有興趣在所有的代碼,由此可以看出這裏: ImageView setVisibility(0) and null pointer exception

+0

我有一個listview,每行有多個元素,我想爲每行設置一個圖像。例如每行一個狀態圖像(綠色/紅色)。 – 2012-02-16 14:33:42

回答

1

更改get方法在基礎適配器:

public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder holder; 
    if (convertView == null) { 
     convertView = mInflater.inflate(R.layout.custom_row_view, null); 
     holder = new ViewHolder(); 
     holder.txtName = (TextView) convertView.findViewById(R.id.name); 
     holder.txtCityState = (TextView) convertView.findViewById(R.id.cityState); 
     holder.txtPhone = (TextView) convertView.findViewById(R.id.phone); 

     holder.statusOk=(ImageView)convertView.findViewById(R.id.imageView1); 

     convertView.setTag(holder); 
     } else { 
     holder = (ViewHolder) convertView.getTag(); 
     } 




     statusOk.setVisibility(View.VISIBLE); 
     holder.txtName.setText(searchArrayList.get(position).getName()); 
     holder.txtCityState.setText(searchArrayList.get(position).getCityState()); 
     holder.txtPhone.setText(searchArrayList.get(position).getPhone()); 

     return convertView; 
    } 

static class ViewHolder { 
    TextView txtName; 
    TextView txtCityState; 
    TextView txtPhone; 

    ImageView statusOk; 

} 
+0

謝謝@Anand,但如何獲得這一行的觀點:holder.statusOk =(ImageView)view.findViewById(R.id.imageView1); – 2012-02-16 14:30:31

+0

ohh對不起,它沒有看到它的converView,你已經通過膨脹,在你的代碼。 – 2012-02-16 14:34:44

+0

Exelentm它的工作原理,謝謝@Anand。 – 2012-02-16 14:43:53