ListView OnItemClickListener with a new activity

匆匆过客 提交于 2019-12-10 17:27:21

问题


I have a listView with an OnItemClickListener. When I am clicking on an item, I would like to open a new wiew in a new Activity like this:

final ListView lv1 = (ListView) findViewById(R.id.ListView02);
    lv1.setAdapter(new SubmissionsListAdapter(this,searchResults));

    lv1.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v,
            int position, long id) {
            Intent myIntent = new Intent(v.getContext(), UserSubmissionLog.class);
            startActivityForResult(myIntent, 0);
            UserSubmissionLog userSubmissionLogs= new UserSubmissionLog(position);
            System.out.println("Position "+position);
            }
        }
    );

The problem is that I have to transfer the clicked position number to the new activity and don't know how to do this.

Thank you.


回答1:


You should add it to the intent:

Intent myIntent = new Intent(v.getContext(), UserSubmissionLog.class);
myIntent.putExtra("position", position);
startActivityForResult(myIntent, 0);

and in the new Activity, call:

int prePosition = getIntent().getIntExtra("position", someDefaultIntValue);



回答2:


Try this,

public class yourClassName
{
     private static listIndex = 0;
     ......
     ......
     final ListView lv1 = (ListView) findViewById(R.id.ListView02);
    lv1.setAdapter(new SubmissionsListAdapter(this,searchResults));

    lv1.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v,
            int position, long id) {
            listIndex = position;
            Intent myIntent = new Intent(v.getContext(), UserSubmissionLog.class);
            startActivityForResult(myIntent, 0);
            UserSubmissionLog userSubmissionLogs= new UserSubmissionLog(position);
            System.out.println("Position "+position);
            }
        }
    );

   // make new static method to access listIdex from another class
   private static int getListIndex()
   {
        return position;
   }
}



回答3:


Intent myIntent = new Intent(v.getContext(), UserSubmissionLog.class);
myIntent.putExtra("your_key_name_for_this_extra", position);
startActivityForResult(myIntent, 0);

And for the receiving activity, get the int value via

int receivedValue = getIntent().getIntExtra("your_key_name_for_this_extra", default_value);


来源:https://stackoverflow.com/questions/9308026/listview-onitemclicklistener-with-a-new-activity

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!