所以我有一个Master / Detail布局,我使用的一个Detail片段包含两个按钮。为了区分两个单独按钮上的点击,我在详细片段类中设置了onClick()函数,如下所示:
public void onClick(View view) {
System.out.println("Click on:");
//The switch statement determines which button was pressed
switch (view.getId()) {
//If it's the calculation button
case R.id.button_calc:
System.out.println("Calculation button!");
//code...
break;
//Otherwise, if it's the save data button
case R.id.button_saveData:
System.out.println("Save button!");
//code...
break;
default:
break;
}
这两个按钮以XML格式声明如下:
<Button android:id="@+id/button_calc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_singleCalc"/>
<Button android:id="@+id/button_saveData"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_saveData"/>
当我点击button_calc时,它会改变颜色,产生咔哒声并按预期执行代码。但是,当我点击button_saveData时,它只会改变颜色 - 没有咔嗒声,也没有代码执行,甚至没有println()(在button_calc中工作正常)。
编辑:不确定是否重要,但我是在使用Android 4.2的Nexus 10上进行开发。那么我做错了什么?
答案 0 :(得分:0)
要直接回答您的问题,我发现您发布的代码没有任何问题。
对我来说,我更喜欢将onClick()事件直接放在xml中,我在Web开发中有一段历史,所以我觉得这对我来说更自然。
<Button android:id="@+id/button_calc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_singleCalc"
android:onClick="onClickCalculation" />
<Button android:id="@+id/button_saveData"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_saveData"
android:onClick="onClickSaveData" />
然后在包含活动(不是片段)
public void onClickCalculation(View view) {
System.out.println("Calculation button!");
//code...
}
public void onClickSaveData(View view) {
System.out.println("Calculation button!");
//code...
}