Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android onListItem如果加载了图像,请单击“无法正常工作”_Android_Android Listview - Fatal编程技术网

Android onListItem如果加载了图像,请单击“无法正常工作”

Android onListItem如果加载了图像,请单击“无法正常工作”,android,android-listview,Android,Android Listview,我有一个自定义列表视图,其中有两个文本视图和一个图像视图。单击每一行,iam将显示一个自定义对话框。打开listview并单击行后,我可以查看对话框,而如果滚动并单击行,则不会显示对话框 我的onListItemclick代码如下 ` 我观察到的另一件事是,如果它是文本视图(而不是图像视图),即使我滚动,我也能够为每一行显示对话框 我的适配器方法是 public class InboxAdapter extends BaseAdapter { private LayoutInflater

我有一个自定义列表视图,其中有两个文本视图和一个图像视图。单击每一行,iam将显示一个自定义对话框。打开listview并单击行后,我可以查看对话框,而如果滚动并单击行,则不会显示对话框

我的onListItemclick代码如下 `

我观察到的另一件事是,如果它是文本视图(而不是图像视图),即使我滚动,我也能够为每一行显示对话框

我的适配器方法是

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
}
});