setHomeAsUpIndicator的Android片段示例

setHomeAsUpIndicator的Android片段示例,android,android-fragments,android-menu,Android,Android Fragments,Android Menu,我正在尝试将为活动构建的Android示例改编为片段()。我想在片段中添加一个注释项并更改actionbar。我已经摸索了一段时间,我想我应该寻求帮助 public class AddNoteActivity extends AppCompatActivity { ... @override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save

我正在尝试将为活动构建的Android示例改编为片段()。我想在片段中添加一个注释项并更改actionbar。我已经摸索了一段时间,我想我应该寻求帮助

public class AddNoteActivity extends AppCompatActivity {
     ...

     @override
     protected void onCreate(Bundle savedInstanceState)
     {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_add_note);
          ...
          getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close);
          setTitle("Add Note");
     }
}
我想把它放进一个片段,这是我得到的最接近的片段:

public class AddScenarioFragment extends Fragment {

    @Override
    public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {

        inflater.inflate(R.menu.add_note_menu, menu);



        //change the title bar
        ActionBar actionBar = getActivity().getActionBar();
        actionBar.setHomeAsUpIndicator(R.drawable.ic_close);
        actionBar.setTitle("Add Scenario");


        super.onCreateOptionsMenu(menu, inflater);
    }
}
但我得到了这个错误: java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“void android.app.ActionBar.setHomeAsUpIndicator(int)”


有什么想法吗?

只需将代码从
onCreateOptionsMenu()
转移到
onCreateView()
方法

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroupparent, Bundle savedInstanceState) {

        //change the title bar
        ActionBar actionBar = getActivity().getActionBar();

        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setHomeAsUpIndicator(R.drawable.ic_close);
        actionBar.setTitle("Add Scenario");
}
试试这个,让我给出反馈

这似乎奏效了:

    //reset the menu at top
    ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setHomeAsUpIndicator(R.drawable.ic_close);
    actionBar.setTitle("Add Scenario");
操作栏是androidx.appcompat.app.ActionBar

现在我需要弄清楚如何在清单中处理这个问题,使其正常工作。根据活动改编,我会有这样一句话:

<activity android:name=".AddNoteActivity" android:parentActivityName=".MainActivity"/>


“方法不重写其超类中的方法”我猜该方法不是Fragment类的一部分。您使用的是哪个片段?导入androidx.Fragment.app.Fragment;那它一定在那里,你在我的链接里找到了吗?