私ListView
はいくつかの要素を持っているところがあります。すべてのアイテムには1つとListView
2つありTextBoxes
ます。ここに私の質問があります:リストから要素をクロックすると、新しいアクティビティが開始されます。ここで、1つとListView
2つがありTextBoxes
ます。新しいアクティビティの最初の要素をクリックした場合にこれを行う方法はListView
、ListView
このアイテムからのものであり、リストからのTextBoxes
データになりますTextBoxes
。
質問する
76 次
2 に答える
1
新しいアクティビティを開始するときに使用するに渡すことができextras
ます。Intent
現在のアクティビティがMyActivity
であり、リストアイテムをクリックして開始するアクティビティがMyNewActivity
;であるとします。次に、MyActivity
クラスで、リストアイテム内のクリックリスナーを次のように変更する必要があります。
Intent intent = new Intent(MyActivity.this, MyNewActivity.class);
intent.putExtra("my.picture.id", images[itemPosition]);
intent.putExtra("my.header.id", headers[itemPosition]);
intent.putExtra("my.text.id", texts[itemPosition]);
startActivity(intent);
MyNewActivity
クラスのメソッドでonCreate
は、渡されたエクストラを取得し、適切なフィールドに正しい値を入力できます。
final Intent intent = getIntent();
final int pictureId = intent.getIntExtra("my.picture.id", 0);
final int headerId = intent.getIntExtra("my.header.id", 0);
final int textId = intent.getIntExtra("my.text.id", 0);
((ImageView)findViewById(R.id.my_image)).setImageResource(pictureId);
((TextView)findViewById(R.id.my_header)).setText(headerId);
((TextView)findViewById(R.id.my_text)).setImageResource(textId);
、および配列images
(おそらく)には、表示する画像と文字列のリソースIDが含まれています。それらは、おそらく現在のアイテムのレンダラーのデータを介してアクセスできます。headers
texts
于 2012-05-16T12:52:01.113 に答える
0
私はそれについて(少なくとも情報を取得する際に)rekaszeruとは少し違ったやり方でやります。
最初のアクティビティでは、onListItemClickを使用し、情報をエクストラバンドルに入れて、2番目のアクティビティを開始する目的で渡されます。この方法では、渡されたビューを使用して情報を取得するため、使用しているアダプターの種類やアダプター内の位置は関係ありません。
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
Intent myIntent = new Intent(FirstClass.this, SecondClass.class);
myIntent.putExtra("ImageRef", v.findViewById(R.id.imageview)).getTag());
myIntent.putExtra("Text1", v.findViewById(R.id.TextView1).getText().toString());
myIntent.putExtra("Text2", v.findViewById(R.id.TextView2).getText().toString());
FirstClass.this.startActivity(myIntent);
}
次に、2番目のアクティビティで、使用する情報を取得します。
private TextView NewTextView1;
private TextView NewTextView2;
private ImageViewView NewImageView;
Bundle extras = getIntent().getExtras();
NewTextView1 = (TextView)findViewBYId(R.id.newtextview1).setText(extras.getString("Text1"));
NewTextView2 = (TextView)findViewBYId(R.id.newtextview2).setText(extras.getString("Text2"));
NewImageView = (ImageView)findViewBYId(R.id.newimageview).setImageResource(extras.getInt("ImageRef"));
于 2012-05-16T13:14:31.937 に答える