私は、ステーショナリー、ブック、ペンという名前の 3 つのアクティビティを持つ Android アプリのサンプルを開発しています。Books and Pens アクティビティから Stationary アクティビティにデータを送信したいと考えています。ステーショナリー アクティビティでは、本またはペンのいずれかのアクティビティからデータを受信すると正常に動作しますが、両方のアクティビティからデータを受信すると、アプリが「予期せず停止します」
この点でいくつかのコードを開発しました。以下で確認できます。
私の本の活動では、次のコードを使用しています。
// in Book Activity
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK))
{
if(myBookSelected)
{
Intent intent = new Intent(Books.this,Stationary.class);
intent.putExtra("bookSelected", books.toString());
startActivity(intent);
}
else
{
Toast.makeText(getApplicationContext(), "Please select books", Toast.LENGTH_LONG).show();
}
}
return true;
}
私のペンアクティビティでは、フローコードを使用しています。
// in Pen Activity
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK))
{
if(myPenSelected)
{
Intent intent = new Intent(Pens.this,Stationary.class);
intent.putExtra("penSelected", pens.toString());
startActivity(intent);
}
else
{
Toast.makeText(getApplicationContext(), "Please select Pens", Toast.LENGTH_LONG).show();
}
}
return true;
}
上記の 2 つのアクティビティである Books と Pens から Stationary アクティビティでデータを受信します。次のコードを使用しています。
// in Stationary Activity
Bundle extras = getIntent().getExtras();
if (extras != null)
{
numberOfBooks = extras.getString("bookSelected");
numberOfPens = extras.getString("penSelected");
}
注: 本またはペンの 1 つのアクティビティからデータを受信すると正常に動作しますが、両方のアクティビティからデータを受信すると、アプリが「予期せず停止します」