2011-03-14 19 views
1

我有問題得到這個工作,這是我想要得到的:onClickListener將獲得無線電的狀態並返回一個敬酒。但我在某處搞亂了。我的意圖有問題,任何人都可以對此有所瞭解,意圖無法解決。 (是的,我顯然還進口了。)這是我有:問題包含「onClick」和一個getIntExtra

public class MainActivity extends Activity { 
protected Intent intent; 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Button check = (Button)findViewById(R.id.Button01); 
    check.setOnClickListener(new Button.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      getIntent(); 
      int state= intent.getIntExtra(TelephonyManager.EXTRA_STATE, -1); 
      String msg=null; 
        switch (state) { 
      case TelephonyManager.NETWORK_TYPE_1xRTT: 
       Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); 
       break; 
     } 
    } 

    }); 
} 

}

+0

什麼(不正確)的輸出/功能你目前看到? Toast.makeText調用的預期行爲是什麼? – 2011-03-14 16:31:55

+0

LogCat對此問題有何說法? – Dalmas 2011-03-14 16:52:17

回答

1

您不存儲getIntent()返回的值。這是更好的:

public void onClick(View v){ 
     intent = getIntent(); 
     int state= intent.getIntExtra(TelephonyManager.EXTRA_STATE, -1); 
+0

+1好了, – Audrius 2011-03-14 17:20:12

+0

好的,這已經解決了FC,非常感謝你! 但現在進入下一個問題,我沒有得到一個返回值(我有更多的情況下,我的開關,但沒有粘貼他們只是爲了節省頁面上的空間)我應該嗎? – Ulatec 2011-03-14 17:23:55

+0

當按下按鈕時,日誌中沒有任何內容正在打印 – Ulatec 2011-03-14 17:35:50

0

不要忘記調用show()
manual

例如

Toast toast = Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT); 
toast.show(); 

另一件事確實在這一行

int state=intent.getIntExtra(TelephonyManager.EXTRA_STATE, -1); 

這是什麼意思?它是在班上的某個地方宣佈的嗎?

你在評論中說你在這條線上得到一個forceclose。它是一個空指針嗎?你需要撥打getIntent()某處嗎?這是'意圖'初始化?

+0

好的,這是我犯的一個明顯的錯誤,但不是我遇到的問題:( – Ulatec 2011-03-14 16:46:56

+0

不錯,你遇到的問題是什麼?你可以發佈一些東西來保持,就像一個錯誤? – Nanne 2011-03-14 16:47:49

+0

我的問題是隻要按下按鈕,我就可以得到FC,並且它指向包含意圖的行。 – Ulatec 2011-03-14 16:49:41