我在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上我得到了这个
可以告诉我为什么会发生这种情况,因为我没有第一次使用这段代码。在我的其他项目中,相同的代码适用于我。请帮助!!
修改
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;
}
答案 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。
现在我的代码工作正常。感谢大家的帮助。