我有一个ListView
我有一些元素的地方。每个项目都有一个ListView
和两个TextBoxes
。这是我的问题:当我在列表中的元素上计时时,一个新的活动开始了,我有一个ListView
和两个TextBoxes
。ListView
如果我单击新活动中ListView
的第一个元素,我该怎么TextBoxes
做TextBoxes
?
问问题
76 次
2 回答
1
您可以在启动新 Activity 时传递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 并将信息放入要传递的附加包中,以启动第二个活动。在这种方法中,您使用传入的视图来检索信息,因此您使用什么样的适配器并不重要,适配器中的位置也不重要。
@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);
}
然后在第二个活动中检索要使用的信息:
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 回答