2011-01-24 27 views
0

我知道這是基本的東西,但我無法弄清楚。這裏是我的代碼:android按鈕事件監聽器不工作

public class test extends Activity{ 

    private static final String TAG = "test"; 
    private Button Test; 


    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Log.v(TAG,"onCreate is called."); 

     this.setContentView(R.layout.main); 
     Test= (Button)this.findViewById(R.id.Test); 


     Test.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       Log.v(TAG, "onClick Entered."); 
       // Perform action on click 
      } 
     }); 

     setContentView(R.layout.main); 
    } 
} 

我看到的第一個日誌「的OnCreate」,但按鈕單擊事件監聽器似乎 不工作,因爲我看不到「點擊進入」。我在哪裏做錯了?

謝謝

回答

1

幾點意見/可以嘗試:

  • 你有你的命名約定倒退。你應該在標題情況下命名你的活動,你的變量是駱駝狀態的(例如你的活動「test.java」應該是Test.java,你的Button Test應該是Button test)。這不是你的問題,但只是要記住。

  • 你打給super.onCreate()兩次。我真的不知道它有什麼影響,但它不應該在那裏。你也打電話setContentView()兩次。一次調用onCreate,一次調用setContentView是你應該擁有的。編輯:顯然三次,每個傑姆斯的評論。

  • 在main.xml中,你有一個帶有test的id的Button嗎? (即android:id="@+id/test"

0

showTrafficButton在哪裏定義?你肯定不應該是:

Button showTrafficButton = (Button)this.findViewById(R.id.Test); 
+0

我剛剛編輯它,所以名稱是測試而不是showTrafficButton – user195678 2011-01-24 21:46:54

+0

而結果是一樣的嗎? – 2011-01-24 21:48:06

5

要調用setContentView兩次,第二次你已經設定了您的後上點擊收聽。這意味着您將偵聽器添加到的視圖不再可見,它將替換爲視圖的不同實例。刪除第二個setContentView