Android-如何将项目单击方法添加到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

我有一个简单的阵列适配器。我想为列表中的每一行单击设置一个侦听器,以便打开一个新活动。我该怎么做?我的ArrayAdapter代码-

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);
}