我有一个列表视图,在每个曲目中我都添加了一个复选框、两个文本视图和图像视图。我想要的是在listitem上有一个单击操作,在imageview上也有一个单独的单击操作(它位于listitem中)。
对于itemclick事件,我使用了以下代码:
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
CustomizeDialog customizeDialog = new CustomizeDialog(desserts.this); // Used to show a dialog
customizeDialog.show();
// TODO Auto-generated method stub
}
}); 还选中了“单击项”复选框。因此,有两种情况正在发生(复选框被选中,对话框出现),根据功能,这是正确的。我希望当用户单击listitem复选框时,选中或取消选中,不应该出现任何对话框,当用户单击同一listitem上的imageview时,上面只显示一个对话框,没有选中或未选中复选框。
我怎样才能做到这一点?请帮帮忙。
石头
发布于 2011-07-11 14:25:54
您需要使用适配器,并在此适配器的getView()中为复选框和对话框设置侦听器。
请参阅:http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/
发布于 2011-07-11 14:36:59
将侦听器设置为getView()
比如:-
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.list_layout, null);
final ViewHolder viewHolder = new ViewHolder();
viewHolder.image1 = (ImageView) view.findViewById(R.id.image1);
viewHolder.image1.setOnClickListener(new OnClickListener(){
@Override
public voic onClick(View v){
// do something here
}
});
viewHolder.text1 = (TextView) view.findViewById(R.id.text1);
viewHolder.checkBox = (CheckBox) view.findViewById(R.id.checkbox);
viewHolder.checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// do something
}
});
view.setTag(viewHolder);https://stackoverflow.com/questions/6651569
复制相似问题