2012-01-08 47 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

相关问题