2012-01-08 100 views
0

我一直試圖讓我的按鈕在很長一段時間內工作,有趣的是他們我已經完全實現了代碼同樣的方式爲其他按鈕,他們工作正常,按鈕甚至沒有拋出一個錯誤或例外,我越來越累..我嘗試了幾乎所有我能想到的,但它仍然無法正常工作。單擊按鈕時無法顯示下一個活動[Android]

按鈕不工作的活動代碼。

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    Button easy, medium, hard; 

    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.exam_level_options); 

    easy = (Button) findViewById(R.id.easyExamButn); 
    medium = (Button) findViewById(R.id.mediumExamButn); 
    hard = (Button) findViewById(R.id.hardExamButn); 

    easy.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      intent = new Intent (ExamOptionPage.this, EasyExam.class); 
      startActivity(intent); 
     } 
    }); 
    medium.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      intent = new Intent (ExamOptionPage.this, MediumExam.class); 
      startActivity(intent); 
     } 
    }); 
    hard.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      intent = new Intent (ExamOptionPage.this, HardExam.class); 
      startActivity(intent); 
     } 
    }); 
} 

/*@Override 
public void onClick(View v) { 


    switch (v.getId()){ 

    case R.id.easyExamButn: 
     intent = new Intent(this, EasyExam.class); 
     this.startActivity(intent); 
     overridePendingTransition(R.anim.fade, 0); 
     break; 

    case R.id.mediumExamButn: 
     intent = new Intent(this, MediumExam.class); 
     this.startActivity(intent); 
     overridePendingTransition(R.anim.fade, 0); 
     break; 

    case R.id.hardExamButn: 
     intent = new Intent(this, HardExam.class); 
     this.startActivity(intent); 
     overridePendingTransition(R.anim.fade, 0); 
     break; 

    default: 
     break; 

    } 

}*/ 

我已經阻止註釋掉switch語句,但嘗試了另一種方法仍然不幸運,但switch語句適用於其他活動。做同樣的事情。

日誌:

01-08 23:42:39.436: INFO/ActivityManager(58): Starting activity: Intent { act=com.gc02.android.activities.OPTIONACTIVITY cmp=com.gc02.android/.activities.OptionActivity } 
01-08 23:42:39.464: INFO/WindowManager(58): Setting rotation to 0, animFlags=0 
01-08 23:42:39.514: INFO/ActivityManager(58): Config changed: { scale=1.0 imsi=310/260 loc=en_US touch=3 keys=2/1/2 nav=3/1 orien=1 layout=34} 
01-08 23:42:40.035: INFO/ActivityManager(58): Displayed activity com.gc02.android/.activities.OptionActivity: 576 ms (total 576 ms) 
01-08 23:42:41.234: INFO/ActivityManager(58): Starting activity: Intent { cmp=com.gc02.android/.activities.ExamActivity } 
01-08 23:42:41.614: INFO/ActivityManager(58): Displayed activity com.gc02.android/.activities.ExamActivity: 358 ms (total 358 ms) 
01-08 23:42:42.144: DEBUG/dalvikvm(58): GC freed 1726 objects/84336 bytes in 104ms 
01-08 23:42:43.474: WARN/KeyCharacterMap(1638): No keyboard for id 0 
01-08 23:42:43.484: WARN/KeyCharacterMap(1638): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 
01-08 23:42:46.694: DEBUG/dalvikvm(101): GC freed 551 objects/26640 bytes in 75ms 
01-08 23:42:47.584: DEBUG/dalvikvm(96): GC freed 411 objects/22256 bytes in 116ms 
01-08 23:42:48.054: DEBUG/dalvikvm(96): GC freed 719 objects/53216 bytes in 166ms 
01-08 23:42:51.114: DEBUG/dalvikvm(96): GC freed 693 objects/42344 bytes in 70ms 
01-08 23:42:59.134: INFO/NotificationService(58): enqueueToast pkg=com.gc02.android [email protected] duration=0 
01-08 23:43:01.688: DEBUG/dalvikvm(99): GC freed 12471 objects/573368 bytes in 1422ms 
01-08 23:43:03.124: WARN/InputManagerService(58): Window already focused, ignoring focus gain of: [email protected] 

這似乎是按鈕都沒有被調用,當我點擊他們,我能做些什麼?

謝謝!

+0

確保的onClick方法被調用。調用'Log.i()'並打印出一些診斷信息。 – 2012-01-08 23:30:23

+0

你可能想看看你的佈局,如果你按照頂部的按鈕繪製,onclick可能不會被解僱。 – 2012-01-09 00:07:31

+0

您也可以嘗試在xml中聲明'android:onclick =「startEasy」'並在您的活動中添加一個公共方法'startEasy'。 – 2012-01-09 00:09:09

回答

0

請添加以下線路的對象線路的通ID之後,調用的onClick方法在你的java文件: -

easy.setOnClickListener(this); 
medium.setOnClickListener(this); 
hard.setOnClickListener(this); 


@Override 
public void onClick(View v) { 
    if(v==easy){ 
     intent = new Intent (ExamOptionPage.this, EasyExam.class); 
     startActivity(intent); 
    } else if(v==medium){ 
     intent = new Intent (ExamOptionPage.this, MediumExam.class); 
     startActivity(intent); 
    } else if(v==hard){ 
     intent = new Intent (ExamOptionPage.this, HardExam.class); 
     startActivity(intent); 
    } 
} 
+0

我試過這樣做,但我仍然沒有進入下一個活動 – StrangeLondoner 2012-01-09 12:25:27

+0

請看我編輯的答案。 – 2012-01-09 13:17:49

+0

謝謝..我也意識到我正在做setContentView在另一個活動,而不是startIntent – StrangeLondoner 2012-01-09 14:32:10

0

我沒有看到你在任何地方定義的「intent」對象。事實上,這應該會導致編譯錯誤。

如果您錯過了此處的行,請確保您已將所有活動包含在AndroidManifest.xml中。

+0

我在OnCreate方法之前定義了這個意圖,我也將它添加到了Manifest中,但它仍然不起作用。 – StrangeLondoner 2012-01-09 12:27:03