【发布时间】:2018-04-06 09:41:50
【问题描述】:
在 ListView 中,我通过 CustomAdapter 类(扩展 ArrayAdapter)添加 TextView 和 ImageButton。当我在 CustomAdapter 类中将 onClickListener 添加到 ImageButton 时,ListView onItemClickListener 不起作用。如果我想选择多个列表还有一个列表,监听器不工作,并行 ImageButton onClickListener 工作。我希望 ListView 和 ImageButton onClickListener 和 onItemClickListener 在我的 Activity 中工作。如何解决这个问题?
谁给点建议!
代码如下:
public class ViewHolder {
TextView username;
ImageButton download;
TextView time;
ImageView contactpic; }
public interface ButtonListener {
public void onButtonClickListner(int position, VoiceMailRecords value);
}
public void setCustomButtonListner(ButtonListener listener) {
this.customListner = listener;
}
public View getView(final int position, View convertView, ViewGroup parent)
{
ViewHolder viewHolder;
viewHolder = new ViewHolder();
if(convertView==null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.recorded_item, parent, false);
//TextView date = (TextView) convertView.findViewById(R.id.date);
viewHolder.time = (TextView) convertView.findViewById(R.id.callingTime);
//TextView number = (TextView) convertView.findViewById(R.id.callerNumber);
viewHolder.username = (TextView) convertView.findViewById(R.id.callerName);
viewHolder.contactpic = (ImageView) convertView.findViewById(R.id.imageView_round);
// ImageView checked = (ImageView) convertView.findViewById(R.id.is_checked);
viewHolder.download = (ImageButton) convertView.findViewById(R.id.is_download);
convertView.setTag(viewHolder);
}
else {
viewHolder = (ViewHolder) convertView.getTag();
}
final VoiceMailRecords user = getItem(position);
viewHolder.username.setText(user.getCallerNumber());
return convertView;
}
活动中
voiceMailRecordAdapter=new VoiceMailRecordAdapter(this,voiceMailRecords,this);
voicemailList.setAdapter(voiceMailRecordAdapter);
voiceMailRecordAdapter.notifyDataSetChanged();
voicemailList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(ListVoiceMailRecord.this,"Position :"+position+" clicked",Toast.LENGTH_LONG).show();
return true;
}
});
@Override
public void onButtonClickListner(int position, VoiceMailRecords value) {
Log.d(TAG, "VoiceMailApi onButtonClickListner " );
Toast.makeText(ListVoiceMailRecord.this,"onButtonClickListner :"+position+"",Toast.LENGTH_LONG).show();
}
【问题讨论】:
-
你能显示代码吗?
-
我更新了我的代码@JayPatel
-
@RevathiManoharan 你能详细说明一下吗
标签: android listview android-studio