问题
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