Намеренная отправка не получена

1

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

С 1-го этапа:

public void onItemClick(AdapterView<?> parent, View view,
              int position, long id) {
                  Intent displayIntent = new Intent(getApplicationContext(), DisplayActivity.class);
              int index  = _names.indexOf(((TextView) view).getText());
              displayIntent.putExtra("ID_TAG", ids.get(index));
              startActivity(displayIntent);
          }

В Activity2 (DisplayActivity)

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Bundle extras = getIntent().getExtras(); 
        _hiveIndex = extras.getLong("ID_TAG");
}

Любые идеи, почему я не получал бы ценность? MMap под дополнительными настройками устанавливается в хэш-карту до 1-го намерения, но имеет значение null в действии2.

  • 2
    Добро пожаловать в Stackoverflow. Чтобы помочь пользователям в чтении вашего поста, поместите примеры кода в блоки кода.
Теги:
android-intent

3 ответа

2
Лучший ответ

displayIntent.putExtra("ID_TAG", ids.get(index)) Activity1, не использующий объект Bundle, чтобы поместить объект Bundle, вам нужно использовать метод putExtras (Bundle bundle) вместо него. Поскольку вы пытаетесь получить объект Bundle в Actvitiy2. Ваша передача, отличная от объекта Bundle, в методе action1 putExtra, но вы пытаетесь получить объект Bundle в Activity2 по этой причине, вы ничего не получаете. displayIntent.putExtra("ID_TAG", ids.get(index)); заменить на displayIntent.putExtras (ваш объект пакета);

Или вы можете использовать getIntExtra(String name, int defaultValue).

  • 0
    Так что это сработало (спасибо, кстати). Я думаю, что я немного перепутал это и эту [ссылку] stackoverflow.com/questions/6100570/…
0

как насчет этого?

в DisplayActivity,

используйте getIntent().getIntExtra("ID_TAG")

0

В Activity1 вы сохраняете Integer. В Activity2 вы пытаетесь получить Long. Вам либо нужно getInteger в Activity2, либо хранить Long in Activity1. Понимаю?

  • 0
    putExtra может использовать любой из примитивных типов, поэтому я не думаю, что это имеет значение. Кроме того, я изначально использовал getInt, но у меня была та же проблема. У меня есть остановка отладчика, прежде чем я выполняю getIntent, и проблема уже существует в комплекте.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню