我正在尝试将包含listview的片段附加到活动中。我尝试了很多东西,但每次我的应用程序都崩溃了。我不知道我的代码有什么问题。 要将onclick属性设置为listview,我尝试实现Adapter.onItemCliclListerner。这也是有效的。这是另一个问题。
public class Fragment1 extends Fragment {
ListView list;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view = inflater.inflate(R.layout.fragment1_layout, container, false);
list = (ListView) getActivity().findViewById(R.id.listView1);
ArrayAdapter<CharSequence> adapter =
ArrayAdapter.createFromResource(getActivity(), R.array.chapters,
android.R.layout.simple_dropdown_item_1line);
list.setAdapter(adapter);
// list.setOnItemClickListener(this);
Log.i("frag1", "1 executed");
return view;
}
}
我的mainActivity类代码是:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
Fragment1 frag1 = new Fragment1();
Fragment2 frag2 = new Fragment2();
transaction.add(R.id.mainactivityid, frag1, "1");
transaction.add(R.id.mainactivityid, frag2, "2");
transaction.commit();
}
答案 0 :(得分:1)
试试这个
list = (ListView) view.findViewById(R.id.listView1);
而不是
list = (ListView) getActivity().findViewById(R.id.listView1);
您必须在ListView
onCreateView(....)
中Fragement
初始化您View
,inflated
{{1}}
答案 1 :(得分:0)
使用片段视图而不是getactivity()。您的列表视图是片段xml布局,您可以使用片段视图来访问它。
list = (ListView) view.findViewById(R.id.listView1);
并在onActivityCreated()方法中设置适配器,此方法在onCreateView()之后调用,并且您将附加活动。