Намеренная отправка не получена - PullRequest
1 голос
/ 02 июля 2011

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

Из Деятельности 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);
          }

В Деятельности 2 (DisplayActivity)

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

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

Ответы [ 3 ]

2 голосов
/ 02 июля 2011

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

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

0 голосов
/ 05 апреля 2013

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

в DisplayActivity,

использование getIntent().getIntExtra("ID_TAG")

0 голосов
/ 02 июля 2011

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

...