android - 異なるデータで同じアクティビティ(同じレイアウト)を呼び出す方法は?

android android-activity android-intent

私はandroidフィールドを初めて使用します。レストランメニューアプリケーションを開発しています。レストランのアイテムの名前を表示するリストビューを作成しました。リストビューでアイテムを1つ選択すると、別のアクティビティが起動し、選択したアイテムの詳細な説明を示すテキストビューフィールドが含まれます。同様に、他のアイテムを選択すると、同じアクティビティが起動しますが、データはその選択したアイテムのものである必要があります。これを達成するにはどうすればよいですか?データソースにsqliteデータベースを使用する場合。
答え
onItemClickに値を渡す必要があります。

Intent intent = new Intent(context, CalledActivity.class);
        intent.putExtra(key, value);
        startActivity(intent);


呼び出されたアクティビティからデータを戻したい場合は、startActivityForResult()を次のように使用できます。

Intent intent = new Intent(context, CalledActivity.class);
        intent.putExtra(key, value);
        startActivityForResult(intent, requestCode);


呼び出されたアクティビティでは、データを次のように設定できます。

setResult(RESULT_OK, intent);


注:ここでは、意図的に値を設定し、それをsetResult()に渡します。

アクティビティの呼び出しに戻ると、以下をオーバーライドすることでデータを取得できます。

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode == RESULT_OK){
            //Get data from Intent "data" and do your task here....
        }
    }


注:Intentを介してプリミティブデータ型の値を渡すことができます。他の型を渡したい場合は、このようにBundleを使用する必要があります。

Bundle data = new Bundle();
        data.putIntArray(key, value);

//same way you can set other values.......
//Now set this Bundle value to Intent as you do for primitive type....

Intent intent = new Intent(context, CalledActivity.class);
        intent.putExtra(data);
        startActivity(intent);


アクティビティでのデータの受信:

//For primitive values:
DataType var_name = getIntent().getExtras().get(key);

//For Bundle values:
Bundle var_name = getIntent().getExtras().getBundle(key);
関連記事

android - Androidのカスタムギャラリービューに説明を追加する

android - Androidでは、ImageViewに子ビューを追加できますか?

java - 断片的にキーが押されたことを検出できますか

android - オートコンプリートテキストビューを空に保つ方法(入力する準備ができています)?

java - Androidの一意のID [重複]

android - ギャラリーからアプリのフォルダーを削除する方法

android - Androidのリストビューに入力されない

android - 非常に基本的な迷路のようなアルゴリズムの提案が必要

android - Androidでtesseract-ocrを使用してOcr名刺スキャナーのコンセプトを手伝ってくれる人はいますか?

android - Androidですべてのユーザーイベントを監視する