2
我想用BaseAdapter创建一个ListFragment。但我的onItemClick事件不起作用,当我使用自定义适配器。我确实得到了我想要的视图,但是我的物品点击并未使用CustomAdapter触发。Android ListFragment onclick问题
我使用下面的代码
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//following code do not fire on click event
setListAdapter(new TestListAdapter(getActivity(), test)); //test is a Arraylist
//following code perfectly fine
setListAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, new String[] { "One", "Two", "Three"}));
}
,这是我TestListAdapter
class TestListAdapter extends BaseAdapter {
private LayoutInflater inflater=null;
private ArrayList<Xyz> tests;
private Context mContext;
TestListAdapter(Context context, ArrayList<Xyz> tests){
//super(context, tests);
mContext=context;
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.tests=tests;
}
public int getCount() {
// TODO Auto-generated method stub
return tests.size();
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return tests.get(position);
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View view=convertView;
if(convertView==null)
view = inflater.inflate(R.layout.my_list_row, null);
TextView tvName = (TextView)view.findViewById(R.id.testName); // title
return view;
}
}
我已经覆盖下面的函数,这就是我怎么知道它ArrayAdapter工作。
public void onListItemClick(ListView l, View v, int position, long id) {
Log.d("XYZ","click.......");
}
你在'R.layout.my_list_row'中有什么看法? – Luksprog
其自定义布局包含多个视图TextView,ImageView,CheckBox – minhaz
“CheckBox”或其他小部件(如“ImageButtons”,“Buttons”)应该不可聚焦。 – Luksprog