Android-如何将项目单击方法添加到ArrayAdapter
我有一个简单的阵列适配器。我想为列表中的每一行单击设置一个侦听器,以便打开一个新活动。我该怎么做?我的ArrayAdapter代码-Android-如何将项目单击方法添加到ArrayAdapter,android,android-arrayadapter,Android,Android Arrayadapter,我有一个简单的阵列适配器。我想为列表中的每一行单击设置一个侦听器,以便打开一个新活动。我该怎么做?我的ArrayAdapter代码- public class CountryListAdapter extends ArrayAdapter<String> { private final Activity context; private final ArrayList<String> names; public CountryListAdapter(Activity c
public class CountryListAdapter extends ArrayAdapter<String> {
private final Activity context;
private final ArrayList<String> names;
public CountryListAdapter(Activity context, ArrayList<String> names) {
super(context, R.layout.rowlayout, names);
this.context = context;
this.names = names;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.rowlayout, null, true);
TextView textView = (TextView) rowView.findViewById(R.id.label);
textView.setText(names.get(position));
return rowView;
}
公共类CountryListAdapter扩展了ArrayAdapter{
私人最终活动背景;
私有最终数组列表名称;
公共CountryListAdapter(活动上下文、ArrayList名称){
super(上下文、R.layout.rowlayout、名称);
this.context=上下文;
this.names=名称;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutInflater充气器=上下文。getLayoutInflater();
视图行视图=充气机。充气(R.layout.rowlayout,null,true);
TextView TextView=(TextView)rowView.findViewById(R.id.label);
textView.setText(names.get(position));
返回行视图;
}
设置适配器后,请使用:
mListView.setAdapter(myCountryListAdapter);
然后,您可以为listview设置单击侦听器:
mListView.setOnParentClickListener(new OnClickListener() {
public void onClick(View view,) {
///do what you want the click to do
}
});
假设您使用的是
ListActivity
实现OnItemClickListener
您可以使用以下代码:
ArrayAdapter<Object> ad = new ArrayAdapter<Object>(this,
android.R.layout.simple_list_item_checked, items);
setListAdapter(ad);
ListView list = getListView();
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
//list.setItemChecked(0, true);
list.setOnItemClickListener(this);
只需实现AdapterView.OnItemClickListener
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int pos, long l) {
Intent i = new Intent(this, ProductActivity.class);
i.putExtra("item_id", manager.getItemIdAtIndex(pos));
startActivity(i);
}
@覆盖
公共虚线单击(AdapterView AdapterView,视图视图,内部位置,长l){
意图i=新意图(这个,ProductActivity.class);
i、 putExtra(“项目id”,manager.getItemdIndex(pos));
星触觉(i);
}
然后在适配器中将具有该方法的类设置为onItemClickListener。有没有办法将onClick逻辑绑定到ArrayAdapter(或任何其他适配器)?我有一个适配器,但多个列表视图中都有它,最好将它绑定到适配器本身?
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int pos, long l) {
Intent i = new Intent(this, ProductActivity.class);
i.putExtra("item_id", manager.getItemIdAtIndex(pos));
startActivity(i);
}