我有自定義適配器的列表視圖,我有按鈕。如何更改自定義適配器上的按鈕點擊按鈕文本
所以我想改變按鈕上的按鈕文本點擊位置上的特定項目。
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
<Button
android:id="@+id/btnadd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ADD"/>
我的自定義適配器:
static class ViewHolder {
public TextView name;
public Button btnadd;
}
@Override
public View getView(final int position, final View convertView,
ViewGroup parent) {
final ViewHolder holder;
View v = convertView;
if (v == null) {
final LayoutInflater vi = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row_brandselected, null);
holder = new ViewHolder();
holder.name = (TextView) v.findViewById(R.id.name);
holder.btnadd = (Button) v.findViewById(R.id.btnadd);
v.setTag(holder);
} else {
holder = (ViewHolder) v.getTag();
}
UserName mUserNrand = values.get(position);
holder.name.setText(mUserBrand.getName().toString());
holder.btnadd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(holder.btnadd.getText().toString() == "ADD"){
holder.btnadd.setText("ADDED");
notifyDataSetChanged();
}
}
});
return v;
}
當我點擊按鈕文本沒有改變對那個位置該特定項目的按鈕。
如何更改特定位置上的特定項目按鈕上的按鈕文本?
如果在單擊監聽器中使用'((Button)v)'而不是'holder.btnadd'?因爲'holder.btnadd'發生了變化,但是''v''在'onClick'內是正確的視圖。 –
我沒有得到它。你能詳細解釋一下嗎? – deepak
添加它作爲答案。 –