ListView
usingを生成しましたBaseAdapter
。リストビューに2つButton
あります。行の Button2 がクリックされたときに、Button1 を非表示にしたいと考えています。次に、別の行の Button2 がクリックされたときに、現在の行の Button1 を非表示にし、以前に非表示だった Button1 を表示するようにします。つまり、一度に 1 つの行の Button1 だけを非表示にする必要があります。以下を実行しましたが、クリックした行で Button1 の可視性を設定する方法がわかりません。一歩一歩私を導いてください。私のアダプターコードは次のとおりです。
private class ListAdapter extends BaseAdapter {
LayoutInflater inflater;
ViewHolder viewHolder;
public ListAdapter(Context context) {
// TODO Auto-generated constructor stub
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return _productlist.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return _productlist.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
private final boolean[] mHighlightedPositions = new boolean[getCount()];
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (convertView == null) {
convertView = inflater.inflate(R.layout.listview_row, null);
viewHolder = new ViewHolder();
viewHolder.Button1 = (Button) convertView
.findViewById(R.id.btn_update);
convertView.setTag(viewHolder);
viewHolder.Button2 = (Button) convertView
.findViewById(R.id.btn_update2);
convertView.setTag(viewHolder);
}
else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.Button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(mHighlightedPositions[position]) {
viewHolder.Button1.setVisibility(convertView.INVISIBLE);
}
}
});
return convertView;
}