无法解析 class 扩展 FragmentActivity 中的方法 getActivity()
Cannot resolve method getActivity() in a class extending FragmentActivity
我在 class 中扩展了 Fragment Activity,我还需要一个自定义工具栏。因此,我添加了获取工具栏的代码,但 setSupportActionBar(toolbar) 没有 work.Then,我添加了 AppCompatActivity.getActivity() 进行转换,但效果不佳。
这是代码 -
public class main_fragment extends FragmentActivity implements FragmentDrawer.FragmentDrawerListener {
private Toolbar toolbar;
private FragmentDrawer drawerFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_fragment);
toolbar = (Toolbar) findViewById(R.id.tool_bar);
((AppCompatActivity) getActivity()).setSupportActionBar(toolbar);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayShowHomeEnabled(true);
drawerFragment = (FragmentDrawer)
getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), toolbar);
drawerFragment.setDrawerListener(this);
}
AppCompatActivity
扩展 FragmentActivity
。您首先要更改的是
extends FragmentActivity
和
extends AppCompatActivity
getActivity()
是Fragment
的一个方法。 Activity
没有那个方法,所以你不需要调用它来使用 setSupportActionBar
和 getSupportActionBar
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
这是Material设置工具栏的方法。
1/ 在 XML 中声明它。
2/ 在你的 activity/fragment class 中充气后找到它。
3/ 配置标题、菜单等..
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
在您的 Fragment/Activity 中找到工具栏。
mToolbar = (Toolbar) view.findViewById(R.id.toolbar);
mToolbar.setTitle(/*your title*/);
mToolbar.inflateMenu(/* menu res id here*/);
mToolbar.setOnMenuItemClickListener(new OnMenuItemClickLister(/*override the click methods with item.getId == your id*/));
我在 class 中扩展了 Fragment Activity,我还需要一个自定义工具栏。因此,我添加了获取工具栏的代码,但 setSupportActionBar(toolbar) 没有 work.Then,我添加了 AppCompatActivity.getActivity() 进行转换,但效果不佳。
这是代码 -
public class main_fragment extends FragmentActivity implements FragmentDrawer.FragmentDrawerListener {
private Toolbar toolbar;
private FragmentDrawer drawerFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_fragment);
toolbar = (Toolbar) findViewById(R.id.tool_bar);
((AppCompatActivity) getActivity()).setSupportActionBar(toolbar);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayShowHomeEnabled(true);
drawerFragment = (FragmentDrawer)
getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), toolbar);
drawerFragment.setDrawerListener(this);
}
AppCompatActivity
扩展 FragmentActivity
。您首先要更改的是
extends FragmentActivity
和
extends AppCompatActivity
getActivity()
是Fragment
的一个方法。 Activity
没有那个方法,所以你不需要调用它来使用 setSupportActionBar
和 getSupportActionBar
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
这是Material设置工具栏的方法。 1/ 在 XML 中声明它。 2/ 在你的 activity/fragment class 中充气后找到它。 3/ 配置标题、菜单等..
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
在您的 Fragment/Activity 中找到工具栏。
mToolbar = (Toolbar) view.findViewById(R.id.toolbar);
mToolbar.setTitle(/*your title*/);
mToolbar.inflateMenu(/* menu res id here*/);
mToolbar.setOnMenuItemClickListener(new OnMenuItemClickLister(/*override the click methods with item.getId == your id*/));