2014-12-04 127 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