我有两个活动,Activity1 extends ListActivity
和Activity2
。我已经为ListActivity
使用了我自己的适配器。我想在单击某个列表项时启动Activity2
。Activity2
中有一个ImageView1
。当我点击ListActivity
中的第一个项目时,我想将位于可绘制文件夹中的FirstImage设置为Activity2
的ImageView1
。当我单击ListActivity
中的第二个项目时,我想将位于可绘制文件夹中的SecondImage替换为ImageView1。因此,我需要将单击项目的位置值作为Intent Extra发送。我对发送仓位值感到困惑。我也想用Switch Case写作。有人给我解释吗?我绝对是初学者。感谢
主页.java(活动1)
public class Home extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.home);
String [] items = new String []{"Banana","Apple","Orange","Pineapple","Lime","Papaya","Mango"};
CustomAdapter adapter = new CustomAdapter(this, items);
setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
//Toast.makeText(this, "You touched"+position, Toast.LENGTH_SHORT).show();
}
CustomAdapter.java
public class CustomAdapter extends ArrayAdapter<String> {
private Context context;
private String [] objects;
public CustomAdapter (Context context, String []objects){
super(context,R.layout.row, objects);
this.context=context;
this.objects=objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
//return super.getView(position, convertView, parent);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.row, parent, false);
TextView tv= (TextView) rowView.findViewById(R.id.textView1);
ImageView iv= (ImageView) rowView.findViewById(R.id.imageView1);
tv.setText(objects[position]);
if (objects[position].startsWith("Apple")) {
iv.setImageResource(R.drawable.apple);
}
else if (objects[position].startsWith("Banana")) {
iv.setImageResource(R.drawable.banana);
}
else if (objects[position].startsWith("Lime")) {
iv.setImageResource(R.drawable.lime);
}
else if (objects[position].startsWith("Mango")) {
iv.setImageResource(R.drawable.mango);
}
else if (objects[position].startsWith("Orange")) {
iv.setImageResource(R.drawable.orange);
}
else if (objects[position].startsWith("Papaya")) {
iv.setImageResource(R.drawable.papaya);
}
else {
iv.setImageResource(R.drawable.pineapple);
}
return rowView;
}
}
Activity2只有一个ImageView
您可以使用Intent
。假设您覆盖OnListItemClick
并在其中启动Activtity2
protected void onListItemClick(ListView l, View v, int position, long id) {
Intent intent = new Intent(this, Activity2.class);
intent.putExtra("pos", position);
startActivity(intent)
}
在活动2中onCreate
使用getIntent();
public void onCreate(Bundle savedInstanceState) {
int position = getIntent().getIntExtra("pos", 0);
}