我有以下菜单:菜单项onClickListener的片段
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".MainActivity">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
app:showAsAction="never"
android:title="Settings" />
<item android:id="@+id/menu_share"
android:icon="@drawable/ic_heart_outline_white_24dp"
app:showAsAction="always"
android:title="Favorite" />
</menu>
我将如何设置一个onClick监听器呢?铭记我的类扩展片段:
public class My_Profile extends Fragment implements ....{}
...我不知道这有什么差别,但我已经在膨胀这个Java文件中的布局了。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
myView = inflater.inflate(R.layout.testFragment, container, false);
...
}
更新1
这是我的建议后,尝试,但好像没有什么改变可有人告诉我做什么我错了:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_main, menu);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.menu_share) {
Log.d("ButtonClick", "button click worked");
}
return super.onOptionsItemSelected(item);
}
,并在OnCreate添加此:
setHasOptionsMenu(true);
更新2
不知道这是否有什么区别,我只是在做一个例子,目前菜单也是这样膨胀的。我不知道如果影响其他2种方法:
mToolbar.inflateMenu(R.menu.menu_main);
更新3
现在,这是我尝试过呢,还是按一下按钮不会记录:
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
setHasOptionsMenu(true);
myView = inflater.inflate(R.layout.testFragment, container, false);
...
return myView;
}
只是为了测试重定向到我的其他活动之一,但仍然没有发生:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.menu_share) {
Intent myIntent = new Intent(getActivity(),LoginActivity.class);
startActivity(myIntent);
}else{
Intent myIntent = new Intent(getActivity(),SignupActivity.class);
startActivity(myIntent);
}
return super.onOptionsItemSelected(item);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_main, menu);
}
谁能帮助?没有方法解决工作至今 – BadCodersHub