私には 2 つの活動がActivity1 extends ListActivity
ありActivity2
ます。自作のアダプターを使用しましたListActivity
。Activity2
リスト項目をクリックすると起動したい。に がありImageView1
ますActivity2
。の最初の項目をクリックするとListActivity
、drawable フォルダーにある FirstImage を of に設定したいと思いImageView1
ますActivity2
。の 2 番目の項目をクリックするとListActivity
、drawable フォルダーにある SecondImage を ImageView1 に置き換えます。そのため、クリックされた項目の位置の値を Intent Extra として送信する必要があります。位置値の送信について混乱しています。私もSwitch-Caseで書きたいです。誰か説明してくれませんか?私は全くの初心者です。ありがとう
Home.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 が 1 つしかありません