我有FragmentActivity
来控制ListFragment
; ListFragment
包含通用ListView
,Adapter
,并从我创建的ArrayList
中提取Singleton
。
在我onCreateView
的{{1}}方法中,我输入了以下代码:
ListFragment
关于为什么当我将项目添加到我的列表时他们没有反应并且没有调用OnItemClick的任何想法?
谢谢你们。
[更新]
我尝试使用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;
}
来实现它,但仍无效。
还尝试使用我的basicList.setAdapter(adapter);
工具ListFragment
并将该方法添加到课程中;这也没用。
答案 0 :(得分: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.
}
答案 1 :(得分:1)
使用
basicList.setListAdapter(adapter);
而不是
this.setListAdapter(adapter);
使用相同的ListView实例设置Adapter
和setOnItemClickListener
。
答案 2 :(得分:1)