2014-12-04 114 views
0

我是Java的新手,这可能是一个基本问题,但在查看内部类的一些引用后,我无法弄清楚为什么这个android代码会产生一个OnCreate方法中的“无法找到符号变量ButtonListener”的编译错误内部类的“找不到符号变量”编译错误

public class MainActivity extends Activity { 

    private class ButtonListener extends BroadcastReceiver { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      Log.d("TAG", "test"); 
     } 
    } 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     ButtonListener = new ButtonListener(); 
     registerReceiver(ButtonListener, new IntentFilter("12345")); 
    } 
+0

ButtonListener = new ButtonListener(); <这似乎缺少一个监听器的变量名,这可能是你的问题。 – Erik 2014-12-04 16:34:21

回答

2

您忘了给变量命名!尝试

ButtonListener listener = new ButtonListener(); 
registerReceiver(listener, new IntentFilter("12345")); 

这两行都有错误。第一行指定了变量的类,但没有指定它的名字(这就是编译器所兜售的内容)。第二行需要你为第一个参数传递一个变量,并且你指定了类的名字而不是变量的名字(一个可以理解的错误,因为它没有名字!)。

+0

DOh,今天早上没有咖啡 – Gruntcakes 2014-12-04 16:37:07

+0

@MrH发生在我们身上! :) – 2014-12-04 16:38:49

+1

@MrH很高兴你没有将它全部输入到打卡中,然后必须再次纠正并重新打出它们...... – 2014-12-04 16:39:48