Проблема с передачей информации через деятельность - PullRequest
1 голос
/ 10 августа 2011

Я пытаюсь передать это:

Intent i=new Intent(ctx,SpendingsDetails.class);
extras.putString("SpendingAmount", "1");
extras.putString("SpendingDescription","2");
extras.putString("SpendingDate","3");
i.putExtras(extras);
startActivityForResult(i,1);

Деятельность, которая получает информацию, выполняет следующую информацию ..

    spendingAmount=(TextView)findViewById(R.id.spending_Sum);
spendingDetails=(TextView)findViewById(R.id.spending_Details);

Bundle extras=getIntent().getExtras();
if(extras!=null)
{
    spendingAmount.setText(extras.getString("SpendingAmount"));
    spendingDetails.setText(extras.getString("SpendingDescription"));
}

Я получаю сообщение об ошибке, что приложение не может продолжить работу на первом экране действий. Что я делаю не так?

Ответы [ 5 ]

5 голосов
/ 10 августа 2011

Используйте вот так

Intent i=new Intent(ctx,SpendingsDetails.class);
    i.putExtras("SpendingAmount", "1");
    i.putExtras("SpendingDescription","2");
    i.putExtras("SpendingDate","3");
    startActivityForResult(i,1);
3 голосов
/ 10 августа 2011

Вы можете просто вызвать getStringExtra напрямую:

spendingAmount.setText(getIntent().getStringExtra("SpendingAmount"));

И так далее для других необходимых вам значений.

Конечно, вы также можете проверить, существует ли значениесначала:

String spending = getIntent().getStringExtra("SpendingAmount");
if(spending != null) {
  spendingAmount.setText(spending);
}

РЕДАКТИРОВАТЬ: Как сказал Rasel:

i.putExtra("SpendingAmount", "1");

Сначала я этого не видел.

2 голосов
/ 10 августа 2011

Я думаю, вы объявили свой объект связки. Но не выделяет память. то есть вам нужно добавить этот код.

Intent i=new Intent(ctx,SpendingsDetails.class);
Bundle extras=new Bundle();// add this code and try once
extras.putString("SpendingAmount", "1");
extras.putString("SpendingDescription","2");
extras.putString("SpendingDate","3");
i.putExtras(extras);
startActivityForResult(i,1);

Надеюсь, это поможет.

2 голосов
/ 10 августа 2011

Где вы объявили статисты?Посмотрите на изменение.

Intent i=new Intent(ctx,SpendingsDetails.class);
Bundle extras=new Bundle();
extras.putString("SpendingAmount", "1");
extras.putString("SpendingDescription","2");
extras.putString("SpendingDate","3");
i.putExtras(extras);
startActivityForResult(i,1);
1 голос
/ 10 августа 2011

Пожалуйста, посмотрите в LogCat для трассировки стека исключений.Это первое место, где нужно искать, когда что-то «не работает».

...