我需要一點幫助:我有一個帶有自定義列表項目和視圖持有者的列表視圖。我複製的代碼表示我正在使用的適配器,但是是一個更簡單的版本。爲了簡單起見,可以說我在每個ListView
項目中都有一個ImageView
和一個LinearLayout
。我想對每個應該執行以下操作的項目應用setOnClickListener
:在另一個項目中更改LinearLayout的可見性,以便在另一個位置(例如總是第五個項目)中更改。顯然,如果我撥打holder.rl.setvisibility(..)
,它會改變相同位置的可視性。我想我可以以某種方式參考我需要改變的項目,但我不確定。你們怎麼能這樣做?使用ViewHolder引用ListView中的另一個項目
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context mContext) {
this.mContext = mContext;
}
@Override
public int getCount() {
return bImageList.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
View view = convertView;
if (view == null) {
view = getActivity().getLayoutInflater().inflate(R.layout.discover_item_layout_my, parent, false);
holder = new ViewHolder();
assert view != null;
holder.itemImage = (ImageView) view.findViewById(R.id.main_discover_listitem_itemimage);
holder.ll = (LinearLayout) view.findViewById(R.id.anim_rl);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
holder.ll.setVisibility(View.VISIBLE);
holder.itemImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//need to set holder.ll visibility to GONE but in another position
}
});
return view;
}
class ViewHolder {
ImageView itemImage;
LinearLayout ll;
}
}
謝謝各位!
只是在adapaetr constacrter中有一個true/false的數組,當你點擊更新的適配器 – 2014-09-27 12:40:06
它是好的,但是我怎樣才能改變例如第五項的佈局? – 2014-09-27 13:01:48
if(position == 5){}比做點事 – 2014-09-27 13:04:32