2012-12-17 1 views
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"})); 

} 

을 사용하고이 내가 기능을 다음 오버라이드 (override) 한 내 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......."); 

} 
+1

'R.layout.my_list_row'에서 어떤 의견이 있습니까? – Luksprog

+0

그것의 커스텀 레이아웃은 여러개의 뷰를 포함합니다 TextView, ImageView, CheckBox – minhaz

+2

'CheckBox' 또는'ImageButtons','Buttons' 같은 다른 위젯은 포커스를 맞추어서는 안됩니다. – Luksprog

답변

1

목록보기에는 TextView가 있습니다. 따라서 onListItemClick()은 실행되지 않습니다.

TextView (또는 다른 listview 하위)의 focusable, clickable 속성을 false로 설정합니다.