如何将单击项目的位置值作为Intent Extra发送



我有两个活动,Activity1 extends ListActivityActivity2。我已经为ListActivity使用了我自己的适配器。我想在单击某个列表项时启动Activity2Activity2中有一个ImageView1。当我点击ListActivity中的第一个项目时,我想将位于可绘制文件夹中的FirstImage设置为Activity2ImageView1。当我单击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);
}

最新更新