2012-12-23 32 views
1

所以我有一个Master/Detail布局,并且我使用的其中一个Detail片段包含两个按钮。为了在两个单独的按钮点击之间进行区分,我有我的onClick()函数建立的细节片段类中,如下所示:Android - 片段中的第二个按钮没有反应

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。

那么我做错了什么?

+1

你叫findViewById(R.id.button_saveData).setOnClickListener(本)? – fhucho

回答

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... 
}