ListView OnItemClickListener与一个新的活动

问题描述:

我有一个ListView与OnItemClickListener。当我点击一个项目,我想在一个新的活动打开一个新的wiew这样的:ListView OnItemClickListener与一个新的活动

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

的问题是,我要点击的位置号码转移到新的活动,不知道如何做到这一点。

谢谢。

你应该把它添加到意图:

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

,并在新的活动,请致电:

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

他已经做到了这一点:) – 2012-02-16 08:51:16

+1

@PareshMayani - 他在哪儿叫'putExtra'? – MByD 2012-02-16 08:52:05

+0

很好,它的工作原理。谢谢。 – 2012-02-16 08:53:22

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); 
+0

他已经这样做:) – 2012-02-16 08:50:30

试试这个,

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

这是一个非常糟糕的做法。 – MByD 2012-02-16 08:52:54