私はいくつかの筋肉のトレーニングがあるアプリに取り組んでいます。
アクティビティ1の各アイテムをクリックして、異なるImageViewとTextViewを使用してアクティビティ2に移動したい。これは可能ですか?
私はいくつかの筋肉のトレーニングがあるアプリに取り組んでいます。
アクティビティ1の各アイテムをクリックして、異なるImageViewとTextViewを使用してアクティビティ2に移動したい。これは可能ですか?
はい、これは可能です。他のアクティビティには、インテント(演習に関するデータを含む)を使用する必要があります。
onClickアイテムで、このインテントを作成し、startActivity(intent)を介してアクティビティを起動します。アクティビティ2では、受信したIntentの追加データを読み取り、それに応じてTextView/ImageViewを調整します。
-最初のアクティビティで、アイテムを表示するために作成しますListView
。
-ListViewのonItemClickListener()
メソッドで、を使用Intent
して2番目のアクティビティに移動します。
-インテントputExtra()
のメソッドを使用して、2番目のアクティビティに渡す必要がある場合は値を入力し、メソッドを使用して2番目のアクティビティで値を取得します。getExtras()
アクティビティ1:
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
i = new Intent(Activity1.this,Activity2.class);
i.putExtra("value1","hello");
i.putExtra("value2","hi");
startActivity(i);
});
アクティビティ2:
Intent i = getIntent();
String index = intent.getExtras().getString("value1");
String value = intent.getExtras().getString("value2");
コメンテーターが言ったように「それは可能です」。アクティビティを開始するために使用されるインテントを介して可能です。Intent.putExtra(key、value)バリエーションを使用します。これらのエクストラは、バンドルオブジェクトとしてアクティビティに渡されます。そこであなたはあなたのエキストラをフェッチするかもしれません。たとえば、次のように添付できます。
Intent intent = new Intent(HostActivity.this, SuccessorClass.class);
intent.putExtra("Extra key", extraData);
startActivity(intent);
添付データを;でフェッチする場合があります。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Object extraData = savedInstanceState.get("Extra key");
}
ほとんどの汎用タイプをサポートしているので、putメソッドとgetメソッドのバリエーションを必ず確認してください。乾杯!