我做了这个
@Override
public void onNavigationDrawerItemSelected(int position) {
Fragment obj = null;
ListFragment listfragment = null;
switch (position) {
case 0:
listfragment= new F1_fr();
break;
case 1:
obj= new F6_fr();
break;
case 2:
obj= new F3_fr();
break;
case 3:
obj= new F4_fr();
break;
case 4:
obj= new F5_fr();
break;
}
if (obj != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.container, obj)
.commit();
}
else if (listfragment != null) {
// do stuff if its a listfragment
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.container, listfragment)
.commit();
}
}
但我在这里有一个错误:.replace(R.id.container,listfragment) 说我替换片段事务中的android.supportv4.app.fragment不能应用于(int,android.app.ListFragment)
public class F1_fr extends ListFragment {
View rootview;
TextView t;
ListView listView;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
rootview=inflater.inflate(R.layout.f1_lay,container,false);
listView =(ListView) rootview.findViewById(R.id.list);
rootview.findViewById(R.id.semi_transparent).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), qr.class);
;
startActivity(intent);
}
});
return rootview;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
final String[] items = getResources().getStringArray(R.array.heroes);
final ArrayAdapter<String> aa = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, items);
setListAdapter(aa);
}
}
答案 0 :(得分:2)
当您自动优化导入时(如Eclipse中的Ctrl-Shift-O),系统应该选择要导入的片段。选择支持版本或像laalto所说的ListFragment。
答案 1 :(得分:1)
您将android.app
个片段与支持库片段混合在一起。
由于您的意图似乎是使用支持库片段,因此将android.app
片段导入(例如android.app.ListFragment
)替换为其android.support.v4.app.ListFragment
等支持库对应项。