0

100ほどのアイテムを含むリストビューがあり、それぞれをクリックすると、ボタンとイメージビューを持つ別のアクティビティが開きます。計画では、リストビューの位置ごとに異なる画像を使用します。

それで、ユーザーがリストビューのアイテムをクリックして、他のアクティビティのimageviewにその画像を変更させるとき、どうにかしてあなたは疑問に思いましたか?(ドローアブルフォルダから)

例えば、

(if position == 1) {

     otheractivity imageview src = "pic 1;

}


(if position == 2) {

      otheractivity imageview src = "pic 2;

}

私は本当に100の異なる活動をしたくありません。

4

3 に答える 3

1

Intent で ID を渡します。リスト アクティビティの onItemClick リスナーには、次のものがあります。

startActivity(new Intent(this, DisplayImageActivity.class).putExtra("imageId", clickedImageId)); //clickedImageId should be R.drawable.my_pic_20 or something

次に、他のアクティビティの onCreate で、それを引き出して設定します。

onCreate {
  final int imageId = getIntent().getExtra("imageId");
  imageView.setImageResource(imageId);
  ...
}

エクストラの受け渡しに関する別の SO 投稿は次のとおりです。

于 2012-07-15T06:04:37.020 に答える
1
Rather using if else condition make array of drawable which will be easy to use like

int[] myImageList = new int[]{R.drawable.thingOne, R.drawable.thingTwo};

and on list item click send the intent like

@Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int position,
            long id) {
        // TODO Auto-generated method stub

        // game_count
            Intent b = new Intent(Configure_Game_List.this, UpdateGame.class);
        b.putExtra("Name", myImageList.get [position]);
        b.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        finish();
        startActivity(b);


    } 


and recieve it as

int imageID = getIntent().getIntExtra("Name", 1);

and set the image 
as


myImageView.setImageResource(imageID );
于 2012-07-15T06:40:05.120 に答える
0

次のように使用して、ListView で選択した行の位置を別のアクティビティに送信できますintent.putExtra

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
    long arg3) {
    // TODO Auto-generated method stub
Intent intent = new Intent();  
intent.setClass(ListActivityw.this,SecondActivity.class);
intent.putExtra("position",Integer.toString(arg2));  
ListActivityw.this.startActivity(intent); 
}
});

2 番目のアクティビティ:

//obtain  Intent Object send  from SenderActivity
  Intent intent = this.getIntent();
  /* Obtain String from Intent  */
  if(intent !=null)
  {
     String position  = intent.getExtras().getString("position");
    (if position == "1") {
       imageview src = "pic 1;
     }
     ///your code here
  }
  else
  {
    // DO SOMETHING HERE
  }
于 2012-07-15T06:11:34.793 に答える