Подтвердить что ты не робот

Как узнать, какие данные даны в Bundle?

У меня есть время выяснить, какие данные поступают к моим методам через Intent/Bundle s. Я попытался добавить точки останова для проверки данных, но ничего не вижу. Возможно, потому, что он Parcelable, я не могу прочитать его вручную в Eclipse.

Например, a onActivityResult(int requestCode, int resultCode, Intent data) для a Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI). Как узнать, какие данные доступны? Обратите внимание: я не прошу, чтобы данные WHAT были доступны, но как я понимаю, поэтому я могу применить ту же идею к любому Bundle/Intent из фреймворка Android? Возможно, это просто, как смотреть на документы, но я не вижу полного списка данных, и я не вижу его в Eclipse. Так что я потерялся.

Помощь? Приветствия

4b9b3361

Ответ 1

Bundle.keySet() дает вам список всех ключей в комплекте. Тем не менее, как правило, вы просто ожидаете определенных ключей и запрашиваете их, но keySet() полезен для изучения пакетов, которые вы получаете откуда-то.

Ответ 2

public static String bundle2string(Bundle bundle) {
    if (bundle == null) {
        return null;
    }
    String string = "Bundle{";
    for (String key : bundle.keySet()) {
        string += " " + key + " => " + bundle.get(key) + ";";
    }
    string += " }Bundle";
    return string;
}

Ответ 3

я получаю ключ alll и значение хранимого пакета...

for (String key : bundle.keySet()) {
    string += " " + key + " => " + bundle.get(key) + ";";
}

вывод:

(key)       :(value)    
profile_name:abc

Ответ 4

Единственное, что вы получаете из Bundle - это то, что вы вложили. Связки - это способы передачи информации между действиями. Если вы отвечаете за все свое приложение, вам не нужно заглядывать в Bundle для ваших объектов, вы должны просто захватить их. Подумайте ключи hashmap... если вы не знаете ключ, вам не нравится поиск хэш-карты.

Чтобы поместить элемент в Bundle и передать его следующему действию, вам нужно указать его как Extra. Посмотрите здесь для примера передачи данных через дополнительные функции и пакеты между действиями.

Скопировано и вставлено ниже:

Из Activity1

Intent intent = new Intent(this,myActivity2.class);
Bundle bundle = new Bundle();
bundle.putString("myValue", myValue);
intent.putExtras(bundle);
navigation.this.startActivity(intent);

В Activity2

Bundle bundle = getIntent().getExtras();
act2MyValue= bundle.getString("myValue");