【问题标题】:Errors in Mainactivity.javaMainactivity.java 中的错误
【发布时间】:2013-02-17 18:03:27
【问题描述】:

我有以下代码,但我找不到摆脱这些错误的方法:

View类型中的setOnClickListener(View.OnClickListener)方法不适用于参数(MainActivity)

这适用于第 17、18、19、20、21、22、23、24、25 行,其中包含:

findViewById(R.id.imageButton9).setOnClickListener(this);

在第 31 行(创建新类的行),我得到:

嵌套类型 MainActivity 不能隐藏封闭类型

这是我正在使用的代码:

package com.example.rome;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.EditText;
import android.widget.Button;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    findViewById(R.id.imageButton1).setOnClickListener(this);
    findViewById(R.id.imageButton2).setOnClickListener(this);
    findViewById(R.id.imageButton3).setOnClickListener(this);
    findViewById(R.id.imageButton4).setOnClickListener(this);
    findViewById(R.id.imageButton5).setOnClickListener(this);
    findViewById(R.id.imageButton6).setOnClickListener(this);
    findViewById(R.id.imageButton7).setOnClickListener(this);
    findViewById(R.id.imageButton8).setOnClickListener(this);
    findViewById(R.id.imageButton9).setOnClickListener(this);



}

class MainActivity extends Activity implements View.OnClickListener {

    @Override
    public void onClick(View v){
      switch(v.getId()){
        case R.id.R.id.imagebutton1:
          startActivity(new Intent(telefoonnummers.class));
          break;
        case R.id.R.id.imagebutton2:
          startActivity(new Intent(telefoonnummers.class));
          break;
        //-- more cases --
        case R.id.R.id.imagebutton9:
              startActivity(new Intent(telefoonnummers.class));
              break;
      }
    }
}

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

}

【问题讨论】:

  • 你为什么要声明 MainActivity 两次?
  • 您确实需要退后一步,熟悉 Java。也许您应该继续以 Android SDK 为导向。您的代码存在荒谬的问题。
  • 我会这样做,但你能帮我解决最后一个错误吗:构造函数 Intent(Class) 未定义

标签: java android eclipse error-handling


【解决方案1】:

删除错误的类定义:

class MainActivity extends Activity implements View.OnClickListener {

并将implements View.OnClickListener 添加到真正的类定义中:

public class MainActivity extends Activity  implements View.OnClickListener {
//      Add this to the "real" MainActivity ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

花点时间确保您已正确闭合每个大括号 ({})。

【讨论】:

  • 非常感谢,但我还是得到了这些:构造函数 Intent(Class) is R cannot be resolved or is not a field
  • @Ide R.id.R.id.imagebutton2: 和朋友应该只是R.id.imagebutton2:,所以取出重复的R.id.
  • 谢谢,我想我会检查我所有的其他文件是否有重复:p,你是否也知道如何摆脱第一个错误?:构造函数 Intent(Class)未定义
  • @Ide startActivity(new Intent(telefoonnummers.class)); 必须是 startActivity(new Intent(MainActivity.this, telefoonnummers.class));
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多