user1390816
user1390816

Reputation: 623

Read out Bundle content

I use intents to communicate from a service to the activity. I use intent.putExtra(Tag, message); if I have a error or something. In the Activity I can get these Extras like following

            String message_error_1 = intent.getStringExtra("Message_Error_1");
            String message_error_2 = intent.getStringExtra("Message_Error_2");
            String message_error_3 = intent.getStringExtra("Message_Error_3");

but just one has data. I can now make an If statement for every entry but I think there is a way to figere out which entry has data. Is there a way?

Upvotes: 0

Views: 54

Answers (1)

chessdork
chessdork

Reputation: 2028

If there's only going to be one error, I'd consider passing an ERROR_TYPE int as one extra and the ERROR_MESSAGE string as another extra, so you don't have to write so many if statements. For example:

int type = intent.getIntExtra("error_type"); // 1, 2, or 3
String message = intent.getStringExtra("error_message");

To answer your question, you could have the service put in an extra that indicates which error message key to use. For example:

// In Service
intent.putExtra("error_key", "Message_Error_1"); // error 1 has the message!

// In Activity
String key = intent.getStringExtra("error_key");
String actualErrorMessage = intent.getStringExtra(key);

Upvotes: 1

Related Questions