ListView OnItemClickListener与新活动的相关内容

4

我有一个带有OnItemClickListener的listView。当我点击某个项目时,我想要在新的Activity中打开一个新的视图,就像这样:

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

问题在于我需要将点击的位置编号传递到新的活动中,但不知道如何做到这一点。
谢谢。
3个回答

10

你应该将它添加到意图中:

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

在新的Activity中调用:

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

1
@PareshMayani - 他在哪里调用了putExtra - MByD

1

试试这个,

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

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

至于接收活动,通过以下方式获取int值

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接