Milos Cuculovic
Milos Cuculovic

Reputation: 20223

ListView OnItemClickListener with a new activity

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.

Upvotes: 4

Views: 10257

Answers (3)

Altaaf
Altaaf

Reputation: 527

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

Upvotes: 1

josephus
josephus

Reputation: 8304

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

Upvotes: 0

MByD
MByD

Reputation: 137282

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

Upvotes: 10

Related Questions