2012-08-30 46 views
0

我有與Button.setEnabled(真)保持變灰

@Override 
protected void onResume() { 
      Log.v(TAG, " onResume() disables the OK button"); 
    // onAuthentificated will re-enable it 
    findViewById(android.R.id.button1).setEnabled(false); 
    super.onResume(); 
} 

後來恢復活動,將認證成功,我的回調被稱爲

@Override 
public void onAuthenticated(String username) { 
    Log.v(TAG, "user can press button"); 
    findViewById(android.R.id.button1).setEnabled(true); 
    super.onAuthenticated(username); 
} 

我知道setEnabled(true)被稱爲最後。

我的問題是,按鈕保持灰色。發生了什麼,我該如何解決這個問題?

佈局(但它不會幫助)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@style/VerticalLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <!-- other stuff --> 
    <Button 
     android:id="@android:id/button1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom" 
     android:text="@android:string/ok" /> 

</LinearLayout> 

這裏是logcat的最後幾行

08-30 13:00:45.182: V/ReportActivity(344): onResume() disables the OK button 
8-30 13:00:45.382: I/ReportActivity(344): Authentification token callback 
08-30 13:00:45.477: D/dalvikvm(344): GC_CONCURRENT freed 324K, 5% free 9960K/10375K, paused 2ms+3ms 
08-30 13:00:45.567: D/NetworkService(344): Broadcast the fact user is authenticated 
08-30 13:00:45.567: D/ReportActivity(344): user can press button 
+0

這發生在一個真正的Galaxy S2與ICS 4.0.4 – rds

+0

你確定你的按鈕的資源是「android.R.id。」而不是「R.id」? – keyboardsurfer

+0

@Keyboardsurfer Godd評論。但是,是的,當View很簡單並且它的角色是通用時,我通常會使用'android.R'資源。此外,該按鈕變灰,這意味着'setEnabled(false)'的作品 – rds

回答

0

解決的辦法是的findViewById(android.R.id.button1)結果存儲在被初始化的字段通過onResume()方法。