Java 片段中的ListView和Tabwidget
以下是我的代码的一部分:Java 片段中的ListView和Tabwidget,java,android,Java,Android,以下是我的代码的一部分: Fragment fragment = null; switch (position) { case 0: fragment = new HomeFragment(); break; case 1: fragment = new FindPeopleFragment(); break; case 2:
Fragment fragment = null;
switch (position) {
case 0:
fragment = new HomeFragment();
break;
case 1:
fragment = new FindPeopleFragment();
break;
case 2:
fragment = new PhotosFragment();
break;
case 3:
fragment = new CommunityFragment();
break;
case 4:
fragment = new PagesFragment();
break;
case 5:
fragment = new WhatsHotFragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
如何制作HomeFragment listview或tab小部件
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class HomeFragment extends Fragment {
public HomeFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.tabs_scroll, container, false);
return rootView;
}
}
如果我要扩展listfragment,则行:
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
标记错误:“FragmentTransaction类型中的方法replace(int,Fragment)不适用于参数(int,HomeFragment)”
请问,我该如何实现这一点?如果我不想让它成为listview,我该如何添加一个选项卡小部件呢
您不能这样做Fragment Fragment=new HomeFragment()
如果您这样做,您将得到无法将HomeFragment转换为Fragment
,因为HomeFragment
是Fragment类,因此您无法将其分配到Fragment
中。因此,您必须喜欢HomeFragment fragment=newhomefragment()代码>例如,从您的代码中
switch (position) {
case 0:
HomeFragment fragment = new HomeFragment();
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
break;
// do like this for remaining cases
default:
break;
}