Android 如何在自定义listview中设置OnitemClick

Android 如何在自定义listview中设置OnitemClick,android,android-listview,listadapter,onitemclicklistener,Android,Android Listview,Listadapter,Onitemclicklistener,我使用扩展基本适配器的listview适配器创建了一个listview 它很好用。但我需要将onitemClick Listener添加到listview,当我单击一个列表项时,它将与listitem一起转到另一个活动。我们如何才能做到这一点 这是我在listview适配器中的代码 public class listviewAdapter extends BaseAdapter{ String FIRST_COLUMN = Constant.FIRST_COLUMN; Strin

我使用扩展基本适配器的listview适配器创建了一个listview

它很好用。但我需要将onitemClick Listener添加到listview,当我单击一个列表项时,它将与listitem一起转到另一个活动。我们如何才能做到这一点

这是我在listview适配器中的代码

public class listviewAdapter extends BaseAdapter{
    String FIRST_COLUMN = Constant.FIRST_COLUMN;
    String SECOND_COLUMN = Constant.SECOND_COLUMN;
    String THIRD_COLUMN = Constant.THIRD_COLUMN;
    String FOURTH_COLUMN = Constant.FOURTH_COLUMN;
    public ArrayList<HashMap<String,String>> list;
    Activity activity;

    public listviewAdapter(Activity activity, ArrayList<HashMap<String,String>> list) {
    super();
    this.activity = activity;
    this.list = list;
    }

    @Override
    public int getCount() {
    // TODO Auto-generated method stub
    return list.size();
    }

    @Override
    public Object getItem(int position) {
    // TODO Auto-generated method stub
    return list.get(position);
    }

    @Override
    public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
    }

    private class ViewHolder {
       TextView txtFirst;
       TextView txtSecond;
       TextView txtThird;
       TextView txtFourth;
    }


    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View vi=convertView;
    // TODO Auto-generated method stub
            ViewHolder holder;
            LayoutInflater inflater =  activity.getLayoutInflater();

            if (convertView == null)
            {
                convertView = inflater.inflate(R.layout.requestcard_columnsdetails, null);
                holder = new ViewHolder();




                holder.txtFirst = (TextView) convertView.findViewById(R.id.date);
                holder.txtSecond = (TextView) convertView.findViewById(R.id.from);
                holder.txtThird = (TextView) convertView.findViewById(R.id.to);
                holder.txtFourth = (TextView) convertView.findViewById(R.id.time);
                convertView.setTag(holder);
            }
            else
            {
                holder = (ViewHolder) convertView.getTag();
            }

            HashMap<String, String> map = list.get(position);
            holder.txtFirst.setText(map.get(FIRST_COLUMN));
            holder.txtSecond.setText(map.get(SECOND_COLUMN));
            holder.txtThird.setText(map.get(THIRD_COLUMN));
            holder.txtFourth.setText(map.get(FOURTH_COLUMN));



        return convertView;
    }
}
公共类listviewAdapter扩展了BaseAdapter{
字符串FIRST\u COLUMN=常量。FIRST\u COLUMN;
字符串第二列=常量。第二列;
字符串第三列=常量。第三列;
字符串第四列=常量。第四列;
公共阵列列表;
活动;
公共listviewAdapter(活动,ArrayList列表){
超级();
这个。活动=活动;
this.list=列表;
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回list.size();
}
@凌驾
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回列表。获取(位置);
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回0;
}
私有类视窗持有者{
TextView txtFirst;
TextView txtSecond;
TextView-txt3;
TextView-txt4;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
视图vi=转换视图;
//TODO自动生成的方法存根
视窗座;
LayoutInflater充气器=活动。getLayoutInflater();
if(convertView==null)
{
convertView=充气机。充气(R.layout.requestcard_columnsdetails,null);
holder=新的ViewHolder();
holder.txtFirst=(TextView)convertView.findViewById(R.id.date);
holder.txtSecond=(TextView)convertView.findViewById(R.id.from);
holder.txtThird=(TextView)convertView.findViewById(R.id.to);
holder.txtFourth=(TextView)convertView.findViewById(R.id.time);
convertView.setTag(支架);
}
其他的
{
holder=(ViewHolder)convertView.getTag();
}
HashMap map=list.get(位置);
holder.txtFirst.setText(map.get(第一列));
holder.txtSecond.setText(map.get(第二列));
holder.txtThird.setText(map.get(第三列));
holder.txtFourth.setText(map.get(第四列));
返回视图;
}
}
我使用

int a,b;
list = new ArrayList<HashMap<String,String>>();
for ( a=0; a<outputString.length;a++){
    HashMap<String,String> temp1 = new  HashMap<String,String>();
    temp1.put( FIRST_COLUMN,outputString[a][0]);
    temp1.put(SECOND_COLUMN, outputString[a][1]);
    temp1.put(THIRD_COLUMN, outputString[a][4]);
    temp1.put(FOURTH_COLUMN, outputString[a][5]);
    list.add(temp1);
}
listviewAdapter adapter = new listviewAdapter(this, list);
lview.setAdapter(adapter);
inta,b;
列表=新的ArrayList();

对于(a=0;a在listview中创建侦听器,如下所示:

lview.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView parent, View view,
                    int position, long id) {
     Intent intent = new intent(mainactivity.this, target.class);
     // maybe put some extra arguments to the intent 
     startActivity(intent);

            }
        });
要将额外数据放入下一个活动,请使用您的意图:

在listview中创建您的监听器,如下所示:

lview.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView parent, View view,
                    int position, long id) {
     Intent intent = new intent(mainactivity.this, target.class);
     // maybe put some extra arguments to the intent 
     startActivity(intent);

            }
        });
要将额外数据放入下一个活动,请使用您的意图:

使用
setonimclickListener

lview.setOnItemClickListener(new OnItemClickListener() {

   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

       Intent intent = new Intent(Activity.this, secondActivity.class);
    startActivity(intent);
   }
 });
lview.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
意向意向=新意向(Activity.this,secondActivity.class);
星触觉(意向);
}
});

使用
setOnItemClickListener

lview.setOnItemClickListener(new OnItemClickListener() {

   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

       Intent intent = new Intent(Activity.this, secondActivity.class);
    startActivity(intent);
   }
 });
lview.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
意向意向=新意向(Activity.this,secondActivity.class);
星触觉(意向);
}
});
试试这个:

list_view.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3)
        {

         Intent myIntent = new Intent(Current_Activity.this,Next_Activity.class);
         startActivity(myIntent);
}
});
list_view.setOnItemClickListener(新的OnItemClickListener(){
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3)
{
Intent myIntent=新的Intent(当前的\u活动。这个,下一个\u活动。类);
星触觉(myIntent);
}
});
试试这个:

list_view.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3)
        {

         Intent myIntent = new Intent(Current_Activity.this,Next_Activity.class);
         startActivity(myIntent);
}
});
list_view.setOnItemClickListener(新的OnItemClickListener(){
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3)
{
Intent myIntent=新的Intent(当前的\u活动。这个,下一个\u活动。类);
星触觉(myIntent);
}
});
与列表项一起

如果您想从ListItem获取一些数据,只需在前面提到的侦听器中使用
parent.getItemAtPosition(position)
。这将返回一个相应的
对象
,您可以使用它执行进一步的操作

   HashMap<String, String> map = (HashMap<String, String>) parent.getItemAtPosition(position);
  String one = map.get("key");
  String two = map.get("key2");

  Intent next = new Intent(FirstActivity.this, NextActivity.class);
  next.putExtra("One", one);
  next.putExtra("Two", two);
  startActivity(next);
与列表项一起

如果您想从ListItem获取一些数据,只需在前面提到的侦听器中使用
parent.getItemAtPosition(position)
。这将返回一个相应的
对象
,您可以使用它执行进一步的操作

   HashMap<String, String> map = (HashMap<String, String>) parent.getItemAtPosition(position);
  String one = map.get("key");
  String two = map.get("key2");

  Intent next = new Intent(FirstActivity.this, NextActivity.class);
  next.putExtra("One", one);
  next.putExtra("Two", two);
  startActivity(next);

如何在下一个类中获取项目id我还需要将项目数组outputString[a][0])此值传递给下一个类Use intent。putExtra(键,值)如何在下一个类中获取项目id我还需要将项目数组outputString[a][0])此值传递给下一个类Use intent。putExtra(键,值)如何在下一个类中获取itm id?我需要将单击的项目传递到下一个类,以及它如何可能的content.putExtra(“id”,id),并在第二个活动中将其返回。我在回答中链接了文档。它为您提供了一个关于如何放置额外数据的更详细的解释。。我知道意图,但你能理解我的确切问题吗,看,当我点击一个项目时,我想在下一个类中获取项目id、位置、项目值,怎么可能?意图是与其他活动沟通的唯一方式。他们可以使用get方法。只需将您的id和其他必需的值放在intent中。如果你点击一个项目,android将使用你的onClickListener,id是你的基于零的点击项目。我如何在下一个类中获得itm id?我需要将单击的项目传递到下一个类,以及它如何可能的content.putExtra(“id”,id),并在第二个活动中将其返回。我在回答中链接了文档。它为您提供了一个关于如何使用p的较长解释