Android工具栏按钮错误 - ViewPostImeInputStage ACTION_DOWN

时间:2017-05-24 17:37:04

标签: java android

我想在工具栏中创建一个按钮,而不是和图标,并且已经走到了这一步。我知道我需要创建一个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);

}

任何帮助将不胜感激。对不起,我还是编程的新手。

2 个答案:

答案 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

        }
    });

这么简单,但对于新手而言,需要花费更长的时间才能解决问题。