link我有一个活动和片段,我想在运行前设置图标的mytoolbar菜单,但在运行应用程序中它什么都不显示。
在我的活动中:
公共类MainActivity扩展了AppCompatActivity {
private TabLayout mTabLayout;
private TextView mTextViewTabOne;
private TextView mTextViewTabTwo;
private TextView mTextViewTabThree;
private android.support.v7.widget.Toolbar mToolbar;
private TextView mTextViewToolbarTitle;
private AlertDialog mAlertDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setLocale("fa");
getSupportFragmentManager().beginTransaction().replace(R.id.framelayout_mainactivity_fragmentcontainer, new AuthenticationPasswordFragment()).commit();
setToolBar(getString(R.string.addbank_toolbartitle));
}
public void setToolBar(String title) {
mToolbar = findViewById(R.id.toolbar_everywhere_toolbar);
mTextViewToolbarTitle = findViewById(R.id.toolbar_title);
mTextViewToolbarTitle.setText(title);
}
在我的片段中:
公共类AuthenticationPasswordFragment扩展BaseFragment实现BaseAuthenticationContract.View {
private TextInputEditText mEditTextPassword;
private TextInputLayout mTextInputEditTextPassword;
private View mRoot;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mRoot=inflater.inflate(R.layout.fragment_authenticationpassword,null);
return mRoot;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.authenticationpassword_menutoolbar,menu);
}
在我的菜单中是:
<item
android:id="@+id/item_authenticationpassword_confirm"
android:title="confirm"
android:icon="@drawable/everywhere_confirm"
app:showAsAction="always"
/>
答案 0 :(得分:1)
在活动的onCreate方法中,将工具栏设置为
delete_all
然后添加此方法。
availabilitiesToDelete.each(&:delete)
然后添加菜单单击侦听器,
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
如果要在不同的片段中更改菜单项和侦听器,请使用界面让活动知道哪个片段处于活动状态并进行相应的更改。
答案 1 :(得分:1)
将此setToolbar替换为活动状态:
public void setToolBar(String title,int resourceMenu) {
mToolbar = findViewById(R.id.toolbar_everywhere_toolbar);
mTextViewToolbarTitle = findViewById(R.id.toolbar_title);
mTextViewToolbarTitle.setText(title);
mToolbar.inflateMenu(resourceMenu);
}
与此:
public void setToolBar(String title) {
mToolbar = findViewById(R.id.toolbar_everywhere_toolbar);
mTextViewToolbarTitle = findViewById(R.id.toolbar_title);
mTextViewToolbarTitle.setText(title);
}
并将此行添加到onCreateView片段或要向其添加菜单工具栏的任何片段:
((MainActivity)getActivity()).setToolBar(getString(R.string.authenticationpassword_titletoolbar),R.menu.authenticationpassword_menutoolbar);
答案 2 :(得分:0)
如果要在片段中使用方法onCreateOptionsMenu
,请在设置工具栏的活动的toolbar.setHasOptionsMenu(true)
中添加代码行onCreate
。
第二种选择是将onCreateOptionsMenu
移到活动中。
请参阅this相关的StackOverflow问题。
如果此方法可行,请报告,希望对您有所帮助。