Android的ListFragment的onclick问题 [英] Android ListFragment onclick issue
问题描述
我试图创建一个使用BaseAdapter一个ListFragment。但是当我使用自定义适配器我onItemClick事件不工作。我得到我想要的看法,但我的项目点击也不会与CustomAdapter射击。
我使用以下code
公共无效onActivityCreated(捆绑savedInstanceState){
super.onActivityCreated(savedInstanceState); //下面的code不火的单击事件
setListAdapter(新TestListAdapter(getActivity(),测试)); //测试是一个ArrayList的//下面的code完全正常
setListAdapter(新ArrayAdapter<串GT;(getActivity(),android.R.layout.simple_list_item_1,新的String [] {一,二,三}));}
这是我TestListAdapter
类TestListAdapter延伸BaseAdapter {
私人LayoutInflater吹气= NULL;
私人的ArrayList<&XYZ GT;试验;
私人语境mContext;
TestListAdapter(上下文的背景下,ArrayList的<&XYZ GT;测试){
//超(背景下,测试);
mContext =背景;
吹气=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.tests =测试;
} 公众诠释的getCount(){
// TODO自动生成方法存根
返回tests.size(); } 公共对象的getItem(INT位置){
// TODO自动生成方法存根
返回tests.get(位置);
} 众长getItemId(INT位置){
// TODO自动生成方法存根
返回的位置;
} 公共查看getView(INT位置,查看convertView,父母的ViewGroup){
// TODO自动生成方法存根
查看查看= convertView;
如果(convertView == NULL)
鉴于= inflater.inflate(R.layout.my_list_row,NULL);
TextView的tvName =(TextView中)view.findViewById(R.id.testName); //称号 返回视图。
}
}
我已经覆盖下面的函数,这就是我怎么知道它ArrayAdapter工作。
公共无效onListItemClick(ListView中升,视图V,INT位置,长的id){
Log.d(XYZ,点击.......);}
您列表视图中有一个TextView。所以onListItemClick()不火。
设置可聚焦,TextView的(或者其他列表视图子女)假的。可点击属性。
I am trying to create a ListFragment using BaseAdapter. But my onItemClick event is not working when i use custom Adapter. i do get my desired view but my on Item click is not firing with CustomAdapter.
I am using following code
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"}));
}
and this is my 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;
}
}
i have overridden following function and that is how i know it working with ArrayAdapter.
public void onListItemClick(ListView l, View v, int position, long id) {
Log.d("XYZ","click.......");
}
Your list view has a TextView. So onListItemClick() does not fire.
Set focusable, clickable property of TextView (or other listview children) false.
这篇关于Android的ListFragment的onclick问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!