我是初学程序员,所以请耐心等待。我正在尝试创建一个应用程序,其中列表视图中的项目将影响将在下一个活动中显示的内容。到目前为止,我有列表活动:
public class Primary extends ListActivity{
private static final String[] items = {"Item1", "Item2", "Item3", "item4", "Item5"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items));
TextView heading =(TextView)findViewById(R.id.listViewHeading);
heading.setText("Primary");
}
public void onListItemClick(ListView parent, View v, int position, long id){
}
对于第二项活动,我有这个:
public class ImageActivity extends Activity{
TextView heading;
ImageView image;
TextView text;
public static final String[] headings={"heading 1", "heading 2", "heading 3", "heading 4", "heading 5",};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.image_activity);
heading = (TextView)findViewById(R.id.adHeading);
image = (ImageView)findViewById(R.id.adImage);
text =(TextView)findViewById(R.id.adText);
addInfo();
}
private void addInfo() {
heading.setText(headings[x]);
image.setImageResource(images[x]);
text.setText(text[x]);
}
如何根据列表视图中的哪个项目进行标题,图像和文本的更改?
答案 0 :(得分:2)
在listview活动中。
Intent i = new Intent(this, ImageActivity.class);
i.putExtra("data", data);
startActivity(i);
下一个Activity onCreate()方法。
final String data = getIntent().getStringExtra("data");
答案 1 :(得分:0)
使用属于Intent的“extras”功能。
从Primary调用start ImageActivity时,可以使用'extras'在两者之间传递信息。
有关详细信息,请参阅this链接。
我会在这里给你一个基本的例子。单击列表项时,使用“putExtra”将想要ImageActivity的数据放入intent中。
Intent intent = new Intent(getBaseContext(), ImageActivity.class);
String data = "somedata";
intent.putExtra("DATA", data);
startActivity(intent)
然后,在ImageActivity onCreate中,检索如下数据:
Bundle extras = getIntent().getExtras();
if(extras !=null) {
String data= extras.getString("DATA"); // matches the tag used in putExtra
}
检索完数据后,请设置必要的视图。
答案 2 :(得分:0)
我想你想在第二个活动中设置标题,图像和文本,与列表中第一个活动的选定索引相关。
只做一件事,在第一个活动中放入以下代码
public void onListItemClick(ListView parent, View v, int position, long id)
{
Intent intent = new Intent(this.getApplicationContext(), ImageActivity.class);
intent.putExtra("pos", position);
startActivity(intent);
}
所以,现在你通过列表中所选项目的位置。
现在,将以下代码放入下一个活动
private void addInfo()
{
Bundle ext = getIntent().getExtras();
if(ext != null)
{
int pos= ext.getInteger("pos");
// ext.getInt("pos");
heading.setText(headings[pos]);
// hey, frend, you don't have any array for selecting image-name and text
// image.setImageResource(images[x]);
// text.setText(text[x]);
}
}
答案 3 :(得分:0)
使用下面的代码
public void onListItemClick(ListView parent, View v, int position, long id)
{
Intent intent = new Intent(Primary.this, ImageActivity.class);
intent.putExtra("selected value", item[position]);
startActivity(intent);
}
ImageActivity类中的:在oncreate中(或者您可以将项变量设置为全局)
String item = getIntent().getStringExtra("Selected value");