1

我有一个FragmentActivity控制ListFragment;那ListFragment包含一个通用ListView,Adapter,并从我创建的Singleton绘制ArrayListListView,OnItemClick没有被调用?

当我ListFragmentonCreateView方法我把下面的代码:

public View onCreateView(LayoutInflater viewInflation, ViewGroup container, 
     Bundle SavedInstantState) { 
    cycleviewfragment = viewInflation.inflate(
      R.layout.cycleviewfragment_page, container, false); 
    context = getActivity().getApplicationContext(); 
    Singleton mySingleton = Singleton.getInstance(); 
    basicList = (ListView) cycleviewfragment.findViewById(android.R.id.list); 
    adapter = new ArrayAdapter<listControlObject>(getActivity() 
      .getApplicationContext(), android.R.layout.simple_list_item_1, 
      mySingleton.getA1()); 

    this.setListAdapter(adapter); 

    addButton = (Button) cycleviewfragment.findViewById(R.id.addbutton); 

    addButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Intent myIntent = new Intent(getActivity(), 
        listaddactivity.class); 
      getActivity().startActivity(myIntent); 
     } 

    }); 

    basicList.setOnItemClickListener(new ListView.OnItemClickListener(){ 
       @Override 
       public void onItemClick(AdapterView<?> arg0, View arg1, 
         int arg2, long arg3) { 
        Log.d("basicListtester", "Testing onClickItem call"); 
        Intent myIntent = new Intent(getActivity(), 
          listdetailactivity.class); 
        myIntent.putExtra("selectedObjectIndex",arg2); 
        getActivity().startActivity(myIntent); 

       } 

      }); 

    adapter.notifyDataSetChanged(); 
    return cycleviewfragment; 
} 

任何想法,为什么当我将项目添加到我的名单,他们还没有反应过来和OnItemClick不叫?

谢谢你们。

[更新]

我试着用basicList.setAdapter(adapter);仍然没有工作实现它。

也尝试让我的ListFragment实施OnItemClickListener并将该方法添加到该类中;哪个也没用。 ListView控件用于设置AdaptersetOnItemClickListener使用

回答

2

由于您使用ListFragment你不应该设置onItemClickListener到列表中。您应该覆盖ListFragment中的一种方法。

@Override 
public void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 

    //Do your thingy. 
} 
+0

当重写时;我如何确保我的ListView basicList侦听; basicList.setOnItemClickListener(this)返回错误。 – Tukajo

+1

另外;我正在阅读其他帖子,上面说如果你的ListFragment里有其他可交互的视图(例如我的按钮),它可以搞砸了吗? – Tukajo

+0

根本不应该调用basicList.setOnItemClickListener(this)。你不会设置一个监听器。它会自动调用。 – tasomaniac

1

basicList.setListAdapter(adapter); 

代替

this.setListAdapter(adapter); 

使用相同的实例。

+0

仍然无法正常工作;我尝试切换东西,让ListFragment实现OnItemClickListener并设置它;但是这也不起作用。 – Tukajo

1

您应该覆盖onListItemClick,因为您的课程延伸ListFragment。从文档:

当列表中的项目被选中时,将调用此方法。 应该覆盖子类。

Here文档

+0

onListItemClick和onItemClick是否有区别? – Tukajo

+0

文档说ListActivity的子类应该覆盖它。 – Blackbelt

+0

这两个答案都没有奏效;我试图让我的FragmentList实现OnItemClickListener,这也没有办法。 – Tukajo