我在每個項目中都設置了兩個不可見的按鈕。我想,當用戶點擊一個項目時,只有該項目中的按鈕纔會變爲可見。使用想在點擊列表視圖的項目中查看某些東西
我是個自定義適配器爲我的列表視圖...
public class LocationAdapter extends BaseAdapter{
String [] n;
Context context;
String[] a;
int bint = View.INVISIBLE;
private static LayoutInflater inflater=null;
public LocationAdapter(MainActivity mainActivity, String[] names, String[] addresses, int bint) {
// TODO Auto-generated constructor stub
this.bint = bint;
n=names;
context=mainActivity;
a=addresses;
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return n.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public class Holder
{
TextView name;
TextView address;
Button b1;
Button b2;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Holder holder=new Holder();
View rowView;
rowView = inflater.inflate(R.layout.rowlayout2, null);
holder.name =(TextView) rowView.findViewById(R.id.EditTextName);
holder.address =(TextView) rowView.findViewById(R.id.EditTextAddress);
holder.b1 = (Button) rowView.findViewById(R.id.Edit);
holder.b2 = (Button) rowView.findViewById(R.id.Delete);
holder.b1.setVisibility(bint);
holder.b2.setVisibility(bint);
holder.name.setText(n[position]);
holder.address.setText(a[position]);
rowView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(context, "You Clicked "+n[position], Toast.LENGTH_LONG).show();
}
});
return rowView;
}
}
誰能請給我我需要怎麼做到這一點的想法?
但如何獲得一個項目中的按鈕的引用,此外,ig如何等被點擊的項目?請詳細說明。 – Isaac
獲得對'Button'的引用的一種方法是使用'findViewById()'。 'onItemClick()'爲你提供被點擊的行的'View'。如果該項目是不可見的,並且您想要響應其單擊事件,則需要在其上設置一個「OnClickListener()」(我不認爲這是很棒的用戶體驗,因爲用戶無法看到「Button」在那裏) – Emmanuel
不,我認爲你有什麼我說錯了 - 我有一個不可見的編輯和刪除按鈕,當用戶單擊列表項時,它們出現供用戶與之交互 – Isaac