AndroidDev21921
AndroidDev21921

Reputation: 695

Possible to pass intent extra from custom adapter to activity to another custom adapter?

So im trying to figure out if I can pass a intent extra from a custom adapter to an activity which then passes that intent extra to another activity?

Is something like that possible or is there a better way to do what I want to do?

Upvotes: 1

Views: 2169

Answers (4)

RaHil ShAikh
RaHil ShAikh

Reputation: 1

yourListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

             //This is where you get the item clicked and specifically what you want from the custom adapter.
            String yourString = ((TextView) view.findViewById(R.id.yourTextView)).getText().toString();



            Intent goToNewActivity = new Intent(YourActivity.this, MainActivity.class);
            goToNewActivity.putExtra("yourExtra", yourString);
            startActivity(goToNewActivity);
        }
    });

Upvotes: 0

AndroidDev21921
AndroidDev21921

Reputation: 695

All the answers mentioned above would work. What I ended up using was an onItemClickListener on my listview and got the information that way. Instead of starting the intent in the custom adapter, i started the intent in the activity the custom adapter was in.

yourListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

             //This is where you get the item clicked and specifically what you want from the custom adapter.
            String yourString = ((TextView) view.findViewById(R.id.yourTextView)).getText().toString();



            Intent goToNewActivity = new Intent(YourActivity.this, MainActivity.class);
            goToNewActivity.putExtra("yourExtra", yourString);
            startActivity(goToNewActivity);
        }
    });

Upvotes: 0

dev.bmax
dev.bmax

Reputation: 10611

I assume, that you know how to send intent extras to an activity. And what you are looking for is a way to forward that same intent to another activity. You can do it like this:

Intent intent = new Intent(this, SecondActivity.class);
intent.putExtras(getIntent());

Upvotes: 0

Lubomir Babev
Lubomir Babev

Reputation: 1908

Activity A:

Intent intent = new Intent(A.this, B.class);
intent.putExtra("someString", "string");
startActivity(intent):

Activity B:

onCreate(...) {
String myString = getIntent().getStringExtra("someString");
MyAdapter myAdapter = new MyAdapter(B.this, myString);
}

MyAdapter :

Context myContext;
String myString;

MyAdapter(Context context, String string) {
this.myContext = context;
this.myString = string
}

Now you have the String from activity A into your adapter :)

Upvotes: 1

Related Questions