Поэтому я пытаюсь запустить новое действие после того, как элемент в списке выбран... довольно простой, основанный на том, что я прочитал. Я также пытаюсь отправить значение в дополнение. Поэтому я могу выбрать элемент в списке, и начнется новое действие, добавлены дополнительные функции, но значение в дополнительных настройках пуст. Я заметил, что идентификатор намерения в отношении новой активности не совпадает с идентификатором с 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.
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)
.
как насчет этого?
в DisplayActivity,
используйте getIntent().getIntExtra("ID_TAG")
В Activity1 вы сохраняете Integer. В Activity2 вы пытаетесь получить Long. Вам либо нужно getInteger в Activity2, либо хранить Long in Activity1. Понимаю?