#android
#Android
Вопрос:
привет всем, во втором упражнении я устанавливаю некоторые значения и как их перенести в первое упражнение. я использую Bundle для передачи данных. Возникает ошибка NullPointerException.
во второй активности:
c1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
c1.setChecked(true);
Bundle bundle = new Bundle();
bundle.putString("key1",String.valueOf(c1.getText()));
Intent myIntent = new Intent(view.getContext(), main.class);
myIntent.putExtras(bundle);
startActivityForResult(myIntent, 0);
}
});
в первом (основном) действии:
Bundle bundle = this.getIntent().getExtras();
check = bundle.getString("key1"); // NullPointerException.
пожалуйста, помогите мне.
Комментарии:
1. Вы уверены, что String.valueOf(c1.getText()) возвращает некоторое значение, а не null.
2. это не равно нулю в элементе
Ответ №1:
Похоже, что вы запускаете свой secondactivity
из своего firstactivity
(main). В этом случае вам нужно вернуть данные с помощью finish()
, а не снова запускать первое действие с помощью startActivityForResult()
.
В вашем secondactivity
используйте:
Bundle bundle = new Bundle();
bundle.putString("key1",String.valueOf(c1.getText()));
Intent myIntent = new Intent(view.getContext(), main.class);
myIntent.putExtras(bundle);
setResult(RESULT_OK, myIntent);
finish();
И в onActivityResult()
of firstactivity
используйте:
@Override
public void onActivityResult(int reqCode, int resCode, Intent data)
{
Bundle bundle = data.getExtras();
check = bundle != null ? bundle.getString("key1") : "";
}
Комментарии:
1. void — недопустимый тип для переменной onActivityResult в этой строке public void onActivityResult(int reqCode, int ResCode, Intent data). я поместил это в метод onCreate.
Ответ №2:
Вы должны запустить действие для механизма результата. Итак, когда второе действие выполнено, чтобы вернуть результат первому действию.
Ответ №3:
Mojo Risin прав, вы должны использовать Start Activity для механизма результата.
Вы можете увидеть полное руководство по работе здесьhttp://www.vogella.de/articles/AndroidIntent/article.html#explicitintents
Ответ №4:
Intent myIntent=new Intent(v.getContext(),detailPage.class);
myIntent.putExtra("prodId", "data");
startActivity(myIntent);
для извлечения
String index=""
index=getIntent().getExtras().getString("prodId");
System.out.println("Position :" index);