这是显示数组项及其图像的Java类。我想创建一个OnListItemClick
,当用户单击某个项目时,它会转到特定活动:
public class MenuActivity extends ListActivity{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState) ;
setContentView(R.layout.main_menu) ;
setListAdapter(new MyAdapter(this, android.R.layout.simple_list_item_1, R.id.optionID , getResources().getStringArray(R.array.main_options))) ;
}
private class MyAdapter extends ArrayAdapter<String>{
public MyAdapter(Context context, int resource, int textViewResourceId,
String[] strings) {
super(context, resource, textViewResourceId, strings);
// TODO Auto-generated constructor stub
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE) ;
View row = inflater.inflate(R.layout.list_menu, parent , false) ;
String[] items = getResources().getStringArray(R.array.main_options) ;
ImageView iv = (ImageView) row.findViewById(R.id.imageView1) ;
TextView tv = (TextView) row.findViewById(R.id.optionID) ;
tv.setText(items[position]) ;
if(items[position].equals("Administration")){
iv.setImageResource(R.drawable.admin) ;
}
else if(items[position].equals("Regions and Divisions")){
iv.setImageResource(R.drawable.regions) ;
}
else if(items[position].equals("Monuments")){
iv.setImageResource(R.drawable.monuments) ;
}
else if(items[position].equals("Historical Places")){
iv.setImageResource(R.drawable.historical) ;
}
else if(items[position].equals("Resources")){
iv.setImageResource(R.drawable.resources) ;
}
return row;
}
}
}
要么你可以
这样做。
ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
//Do your stuf here
}
});
或者只需将适配器中的行的 onclick 侦听器设置在返回它的正上方。
标记为向上,如果它适合您。