在我的应用程序中我使用列表视图。在列表视图中我有三个图像按钮(播放,详细信息,购买)。每个图像按钮都有各自的动作。如何在列表视图中为每个图像按钮执行onclick操作。
我的代码:
public class AndroidThumbnailList extends ListActivity{
..........
public class MyThumbnaildapter extends ArrayAdapter<String>{
public MyThumbnaildapter(Context context, int textViewResourceId,String[] objects) {
super(context, textViewResourceId, objects);
// TODO Auto-generated constructor stub
}
public View getView(int position, View convertView, ViewGroup parent) {
.........
}
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
_contentUri = MEDIA_EXTERNAL_CONTENT_URI;
initVideosId();
setListAdapter(new MyThumbnaildapter(AndroidThumbnailList.this, R.layout.row, _videosId));
}
}
如何为列表视图编写操作。请帮帮我。
答案 0 :(得分:2)
您需要编写自己的适配器来扩充您要使用的视图,然后为每个图像分配一个OnClick侦听器。以下是我的一个项目中的一些示例代码,它们执行类似的操作(但只有一个复选框,我添加了一个监听器)。
public class GroupListAdapter extends BaseAdapter {
private List<Group> groups;
// ... constructors here
@Override
public int getCount() {
return groups.size();
}
@Override
public Group getItem(int position) {
return groups.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
final Group group = getItem(position);
final View view;
if (convertView == null)
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.group, null);
else
view = convertView;
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// do stuff when the rest of the view is clicked
}
});
TextView tv = (TextView) view.findViewById(R.id.group_name);
tv.setText(group.getName());
final CheckBox check = (CheckBox) view.findViewById(R.id.group_checkbox);
check.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// do stuff when clicked
}
});
return view;
}
}