Android onListItem如果加载了图像,请单击“无法正常工作”
我有一个自定义列表视图,其中有两个文本视图和一个图像视图。单击每一行,iam将显示一个自定义对话框。打开listview并单击行后,我可以查看对话框,而如果滚动并单击行,则不会显示对话框 我的onListItemclick代码如下 ` 我观察到的另一件事是,如果它是文本视图(而不是图像视图),即使我滚动,我也能够为每一行显示对话框 我的适配器方法是Android onListItem如果加载了图像,请单击“无法正常工作”,android,android-listview,Android,Android Listview,我有一个自定义列表视图,其中有两个文本视图和一个图像视图。单击每一行,iam将显示一个自定义对话框。打开listview并单击行后,我可以查看对话框,而如果滚动并单击行,则不会显示对话框 我的onListItemclick代码如下 ` 我观察到的另一件事是,如果它是文本视图(而不是图像视图),即使我滚动,我也能够为每一行显示对话框 我的适配器方法是 public class InboxAdapter extends BaseAdapter { private LayoutInflater
public class InboxAdapter extends BaseAdapter {
private LayoutInflater inflater;
private TextView Tvname, TVtimeStamp;
private ImageView IVmsg;
public InboxAdapter(Context context, List<VCStegoInboxList> inboxList) {
inflater = LayoutInflater.from(context);
VCStegoInboxWithOutCheckboxes.Inboxlist = inboxList;
}
public class ViewHolder{
private TextView Tvname;
private TextView TVtimeStamp;
private ImageView IVmsg;
}
public int getCount() {
return VCStegoInboxWithOutCheckboxes.Inboxlist.size();
}
// @Override
public Object getItem(int position) {
return VCStegoInboxWithOutCheckboxes.Inboxlist.get(position);
}
// @Override
public long getItemId(int position) {
return position;
}
// @Override
public View getView(final int position, View convertView,
ViewGroup parent) {
ViewHolder holder;
if (convertView==null){
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.inboxtextviews, null);
Tvname = (TextView) convertView.findViewById(R.id.tvinboxname);
IVmsg = (ImageView) convertView.findViewById(R.id.tvinboxmsg);
TVtimeStamp = (TextView) convertView.findViewById(R.id.tvtimeStamp);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
Tvname.setText(VCStegoInboxWithOutCheckboxes.Inboxlist
.get(position).getname());
IVmsg.setImageBitmap(VCStegoInboxWithOutCheckboxes.Inboxlist.get(
position).getBitmap());
TVtimeStamp.setText(VCStegoInboxWithOutCheckboxes.Inboxlist.get(
position).getTimeStamp());
return convertView;
}
}
公共类InboxAdapter扩展了BaseAdapter{
私人充气机;
私有文本视图Tvname、TVtimeStamp;
私有ImageView IVmsg;
公共InboxAdapter(上下文上下文,列表inboxList){
充气器=充气器。从(上下文);
vcstegoinboxwithout复选框。Inboxlist=Inboxlist;
}
公共类视图持有者{
私有文本视图Tvname;
私有文本视图时间戳;
私有ImageView IVmsg;
}
public int getCount(){
返回vcstegoinboxwithout复选框。Inboxlist.size();
}
//@覆盖
公共对象getItem(int位置){
返回vcstegoinboxwithoutcheckbox.Inboxlist.get(位置);
}
//@覆盖
公共长getItemId(int位置){
返回位置;
}
//@覆盖
公共视图getView(最终整型位置,视图转换视图,
视图组(父级){
视窗座;
if(convertView==null){
holder=新的ViewHolder();
convertView=充气机。充气(R.layout.inboxtextviews,null);
Tvname=(TextView)convertView.findViewById(R.id.tvinboxname);
IVmsg=(ImageView)convertView.findViewById(R.id.tvinboxmsg);
TVtimeStamp=(TextView)convertView.findViewById(R.id.TVtimeStamp);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
Tvname.setText(vcstegoinbox不带复选框。inbox列表
.get(position.getname());
IVmsg.setImageBitmap(vcstegoinboxwithoutcheckbox.Inboxlist.get(
获取位图());
TVtimeStamp.setText(vcstegoinboxwithout复选框.Inboxlist.get(
位置);
返回视图;
}
}
我的xml文件是
<?xml version="1.0" encoding="utf-8"?>
为根布局id分配id,如
<RelativeLayout
android:id="@+id/root"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<your TextView/>
<your ImageView/>
<your TextView/>
</RelativeLayout>
编写上面的onclick监听器返回convertView代码>行适配器类
onclick侦听器是这样的
root.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//toast display dialog code here
}
});
您需要发布所有列表代码,因为问题似乎出在列表而不是对话框上。listitem click在哪里?适配器方法和xml已发布。事实上,如果我用列表项替换图像视图,我就不会有任何问题。并且图像视图的列表显示正确。仅在滚动之后,我无法获得对话框。
<RelativeLayout
android:id="@+id/root"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<your TextView/>
<your ImageView/>
<your TextView/>
</RelativeLayout>
root = (RelativeLayout) convertView.findViewById(R.id.root);
root.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//toast display dialog code here
}
});