2012-02-16 10 views
4

私は、OnItemClickListenerを持つlistViewを持っています。私は項目をクリックしていたとき、私はこのような新しい活動に新しい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); 

と新しい活動に呼び出す:

答えて

10

あなたは意志にそれを追加する必要があり

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

彼は既にこれを行っています: –

+1

@PareshMayani - 彼はどこで 'putExtra'を呼び出しましたか? – MByD

+0

偉大な、それは動作します。ありがとうございました。 –

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

彼はすでにこれを行っています:) –

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

これは非常に悪い習慣です。 – MByD