Android - 我正在尝试制作Onclick事件,当应用程序启动时,它会给我这个错误

时间:2014-08-06 14:03:35

标签: android

我试图制作一个可以更改主要活动中某些文字的应用,但这不是错误。 OnClick Event中的真正错误是:

  

不兼容的类型

这是包含错误的两个文件

first_.xml是:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".First_Activ" >
<item android:id="@+id/action_settings"
    android:title="@string/action_settings"
    android:orderInCategory="100"
    android:showAsAction="never" />
<item android:title="AlMA PRO Leader - First Test"
    android:id="@+id/AlmaSettingItem"
    android:onClick="Doit"
    />
</menu>

First_Activ.java是:

@Override
public Void DoIt(MenuItem Item){
    TextView txt= (TextView)findViewById(R.id.ARMY );
    txt.setText("Done");
    return true;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.first_, menu);
    return true;
}

@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_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}
}

错误在First_Activ.java

 @Override
public Void DoIt(MenuItem Item){
    TextView txt= (TextView)findViewById(R.id.ARMY );
    txt.setText("Done");
    return true;
}

2 个答案:

答案 0 :(得分:2)

此代码无法编译。你想要归还一些东西。但你的是什么

public Void DoIt(MenuItem Item) 

实际上正在回归?

奥马尔,我认为你不了解Java的主要原则。我建议你阅读Java基础知识和Android。编写代码并在此处询问帮助而不了解此代码实际上应该执行的操作不是解决方案。

答案 1 :(得分:2)

您已在xml中将其声明为

android:onClick="Doit"

但是在Java中你有

public Void DoIt(MenuItem Item){
“Doit”在两者中并非相同。修复它。如果这不是您的问题,请发布错误。

改变你的xml

android:onClick="doIt"

此外,删除函数中的return语句,并将返回类型移至void并更改函数名称,使其符合Java标准。

@Override
public void doIt(MenuItem item){
    TextView txt= (TextView)findViewById(R.id.ARMY );
    txt.setText("Done");
}

我还将Item更改为item以坚持使用Java标准