下面的Util.class包含一個靜態ArrayList,最大值爲2的int數。更新EfficientAdapter ListView中的特定行Android
public class Util extends Activity {
public static ArrayList<Integer> selectedPosition= new ArrayList<Integer>();
selectedPosition.add(3);
selectedPosition.add(5);
}
以我getView()適配器方法我試圖改變TextView的,並提出了3位和5只可見的圖像。問題是imageview只有最後一個元素是可見的,我不能顯示3號imageview。我怎樣才能在適配器內部同時看到兩個imageview。這裏是我的getview方法。
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
vi = convertView;
if (convertView == null) {
vi = inflater.inflate(R.layout.vrow, null);
holder = new ViewHolder();
holder.one = (TextView) vi.findViewById(R.id.text_one);
holder.two = (TextView) vi.findViewById(R.id.text_second);
holder.three = (TextView) vi.findViewById(R.id.text_num_compte);
holder.image = (ImageView)vi.findViewById(R.id.single_image);
holder.relative_layout = (RelativeLayout)vi.findViewById(R.id.corner);
} else
holder = (ViewHolder) vi.getTag();
vi.setTag(holder);
String stDebit =Util.decimalFloatForm(Float.valueOf((data.get(position).getSoldeCompte())));
if (stDebit.startsWith(","))
stDebit = "0 000"+stDebit;
if (data.get(position).getAuthCompte().equalsIgnoreCase("N")){
holder.one.setText(data.get(position).getLibelleCompte());
holder.two.setText(stDebit+" EUR");
holder.three.setText(vi.getResources().getString(R.string.special)+" "+data.get(position).getNumComtpe());
}else {
holder.one.setText(data.get(position).getLibelleCompte());
holder.two.setText("xx,xxx EUR");
holder.three.setText(vi.getResources().getString(R.string.special)+" "+data.get(position).getNumComtpe());
}
holder.image.setVisibility(View.GONE); //hide right tick
System.out.println("VirementEmmeteurSize : "+Util.selectedPosition.size());
//check if selectedPosition is empty
if (Util.selectedPosition!=null){
for(int x=0;x<Util.selectedPosition.size();x++){
int index = Util.selectedPosition.get(x).toString().indexOf(String.valueOf(position));
boolean boolValue = (index == -1?false:true);
if (boolValue){
holder.two.setText(stDebit+" "+data.get(position).getDeviseCompte());
holder.image.setVisibility(View.VISIBLE); //show right tick
}else {
holder.image.setVisibility(View.GONE); //hide right tick
}
}
}
return vi;
}
我認爲選擇項處理自定義列表,而不是僅僅試圖把一個標誌在列表中的項目持有人或自定義類的列表項,並在此基礎上標誌值試圖隱藏/顯示圖像。 – 2014-10-27 12:39:58
你想要整個自定義適配器 – Dimitri 2014-10-27 12:44:35
請檢查我編輯的評論,並把你的適配器整個代碼。 – 2014-10-27 12:46:12