No Listener正在使用ListView

时间:2013-08-30 10:27:05

标签: android listview position

我在Listview上设置了2到3个列表器但没有列表器工作(但是一次只应用任何1个列表器。)我使用自定义Adapter.I每次成功获取listview中的数据意味着对象是不是空白。但是在排队时,我无法执行任何操作。我正在使用下面的代码。我也试过onItemSelectedListner,但这也无效。

MyAdapter myadptr = new MyAdapter();
        lv.setAdapter(myadptr);


         lv.setOnItemClickListener(new OnItemClickListener() {

         @Override
         public void onItemClick(AdapterView<?> arg0, View arg1,
         int arg2, long arg3) {
         Toast.makeText(ContactBookActivity.this,
         " inside setOnItemClickListener ", 300).show();
         }
         });
在logcat上我得到了这个 enter image description here

可以告诉我为什么会发生这种情况,因为我没有第一次使用这段代码。在我的其他项目中,相同的代码适用于我。请帮助!!

修改

class MyAdapter extends BaseAdapter {

    private ViewHolder holder;

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return inflatList.size() - 1;
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return inflatList.get(position);
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater lf = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);

        convertView = lf.inflate(R.layout.importlist_inflator, null);

        holder = new ViewHolder();

        holder.in_ll = (LinearLayout) convertView.findViewById(R.id.in_ll);
        holder.im = (ImageView) convertView.findViewById(R.id.infltimg);
        holder.txtname = (TextView) convertView.findViewById(R.id.txtname);
        holder.phn_import = (TextView) convertView
                .findViewById(R.id.phn_import);
        holder.eid_import = (TextView) convertView
                .findViewById(R.id.eid_import);
        convertView.setEnabled(true);
        // inflatList = dbh.reteriveContactInfo();

        int indx = 0;
        String did = inflatList.get(position).get(indx).toString();
        String name = inflatList.get(position).get(++indx).toString();
        // txtname.setText(inflatList.get(position).get(indx).toString());
        holder.phn_import.setText(inflatList.get(position).get(++indx)
                .toString());
        holder.eid_import.setText(inflatList.get(position).get(++indx)
                .toString());

        ByteArrayInputStream inputStream = new ByteArrayInputStream(
                (byte[]) inflatList.get(position).get(++indx));
        Bitmap mBitmap = BitmapFactory.decodeStream(inputStream);
        holder.im.setImageBitmap(mBitmap);
        holder.txtname.setText(name);


        return convertView;
    }

2 个答案:

答案 0 :(得分:0)

我无法告诉你完美的理由,但以下是我用来解决问题的方法。

 android:focusable="false"

我在列表视图中有Button消耗点击事件,因为我猜对了。在你的情况下,它可能是你使用的ImageView

修改

还有另一种方法可以使行可点击。请执行以下操作,

 convertView .setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_SHORT).show();
            }
        });

答案 1 :(得分:0)

我在我的充气机xml中使用了这一行。

机器人:descendantFocusability =&#34; blocksDescendants&#34;在父布局中,

和android:focusable =&#34; false&#34;在所有imageView。

现在我的代码工作正常。感谢大家的帮助。