public class Titles extends Fragment {
View view;
SimpleCursorAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
MySqlite db=new MySqlite(getActivity());
view= inflater.inflate(R.layout.fragment_titles, container, false);
ListView list=(ListView)view.findViewById(R.id.list);
Cursor all_titles = db.getTitle();
adapter = new SimpleCursorAdapter(getActivity().getBaseContext(),
R.layout.fragment_titles,
all_titles,
new String[] { db.KEY_TITLE},
new int[] { R.id.tv_title }, 0);
//Attach cursor adapter to the ListView
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getActivity().getApplicationContext(),"ListView Clicked Go Ahead",Toast.LENGTH_LONG).show();
TextView tv=(TextView)view.findViewById(R.id.tv_title);
String selected_title=tv.getText().toString();
// Launching new Activity on selecting single List Item
Intent i = new Intent(getActivity().getApplicationContext(), Poem.class);
// sending data to new activity
i.putExtra("title", selected_title);
startActivity(i);
}
});
return view;
}
}
我刚刚开始Android开发,我正在努力获得一个自定义列表视图,其中包含一个复选框工作。我在点击片段中的ListView项目时遇到问题。在模拟器中,listview单击事件不起作用。我正在使用片段。 任何人都可以帮忙。 提前致谢
答案 0 :(得分:0)
我编辑了代码的某些部分。整个代码如下:
public class Titles extends Fragment {
View view;
SimpleCursorAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_titles, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
View view = getView();
// Inflate the layout for this fragment
MySqlite db = new MySqlite(getActivity());
ListView list = (ListView) view.findViewById(R.id.list);
Cursor all_titles = db.getTitle();
adapter = new SimpleCursorAdapter(getActivity().getBaseContext(),
R.layout.fragment_titles,
all_titles,
new String[] { db.KEY_TITLE},
new int[] { R.id.tv_title }, 0);
//Attach cursor adapter to the ListView
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getActivity().getApplicationContext(),"ListView Clicked Go Ahead",Toast.LENGTH_LONG).show();
TextView tv=(TextView)view.findViewById(R.id.tv_title);
String selected_title=tv.getText().toString();
// Launching new Activity on selecting single List Item
Intent i = new Intent(getActivity().getApplicationContext(), Poem.class);
// sending data to new activity
i.putExtra("title", selected_title);
getActivity().startActivity(i);
}
});
return view;
}
}
基本上,我只是将您的代码移至onActivityCreated
并将此部分startActivity(i)
更改为此getActivity().startActivity(i)
。