我想在工具栏中创建一个按钮,而不是和图标,并且已经走到了这一步。我知道我需要创建一个OnClickListener但不能将它拉下来。我尝试的所有内容都会导致错误
ViewPostImeInputStage ACTION_DOWN
这是我的 menu_home_activity.xml 文件
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.getmore.getmoreplus.activity.HomeActivity">
<item
android:id="@+id/action_call"
app:actionLayout="@layout/callicon"
android:title=" "
app:showAsAction="ifRoom"
/>
</menu>
和我的 callicon.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rl_menu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="right"
android:paddingTop="10dp">
<ImageView
android:id="@+id/callbtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/call" />
</RelativeLayout>
最后是我的 HomeFragment.java 文件
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
//Creates options in the top bar
//Currently only creates the phone
inflater.inflate(R.menu.menu_home_activity, menu);
super.onCreateOptionsMenu(menu, inflater);
}
任何帮助将不胜感激。对不起,我还是编程的新手。
答案 0 :(得分:0)
您不需要在工具栏图标上添加onclick listner,也可以通过
实现相同的功能。onOptionsItemSelected()
首先在xml菜单中代替app:actionLayout="@layout/callicon"
,您可以直接给出像这样的图标
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.getmore.getmoreplus.activity.HomeActivity">
<item
android:id="@+id/action_call"
android:title="Call"
app:showAsAction="ifRoom"
android:icon="@drawable/call"/>
在您的活动中,
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_home_activity, menu);
return super.onCreateOptionsMenu(menu);
}
然后,
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_call) {
// Do your onClick action here
}
return super.onOptionsItemSelected(item);
}
我认为这可以解决您的问题
答案 1 :(得分:0)
好的我修好了。
我将此添加到我的活动类
private ImageView callbutton;
然后我在int()部分添加了一个监听器。的 WORKING 强>
callbutton = (ImageView)mRootView.findViewById(R.id.callbtn);
callbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//my action
}
});
这么简单,但对于新手而言,需要花费更长的时间才能解决问题。