2016-07-30 57 views
0

我試圖改變circuitLength的值時,fiveMinuteButton點擊,但是,價值沒有改變。int值不改變button.SetOnClickListener()

private Button fiveMinuteButton; 
int circuitLength; 

    @Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_workout_settings_screen); 

    fiveMinuteButton = (Button) findViewById(R.id.fiveminutesbuttonid); 



    fiveMinuteButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      circuitLength = 5; 

     } 
    }); 

XML:

<Button 
    android:id="@+id/fiveminutesbuttonid" 
    android:background="@drawable/whitebutton_shape" 
    android:layout_below="@+id/workoutlengthtitleId" 
    android:layout_marginTop="8dp" 
    android:text="@string/fiveminutes_text" 
    android:layout_width="90dp" 
    android:layout_height="60dp" /> 
+1

顯示'InitialzeUIButtons()'和xml佈局? –

+0

我只是改變了它,我真的不知道爲什麼價值沒有被存儲到電路長期 –

+0

添加烤麪包點擊然後檢查測試值。 –

回答

0

嘗試那麼這段代碼讓我知道了,然後我們進一步調查。

private Button fiveMinuteButton; 
int circuitLength; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_workout_settings_screen); 


    Toast.makeText(this,"circuitLength value ="+circuitLength, Toast.LENGTH_LONG).show(); 
    fiveMinuteButton = (Button) findViewById(R.id.fiveminutesbuttonid); 
    fiveMinuteButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      circuitLength = 5; 
      Toast.makeText(ACtivityName.this,"circuitLength value ="+circuitLength, Toast.LENGTH_LONG).show(); 

     } 
    }); 
+0

謝謝,我最終更新了Android Studio的最新版本並重新啓動它。然後,一切正常。 –

0

是的,它不會因爲你每次initializing值5,當您點擊fiveMinuteButton(即circuitLength = 5,而不是寫circuitLength = circuitLength + 5更新)。

將您的代碼更改爲以下內容。

private Button fiveMinuteButton; 
int circuitLength; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_workout_settings_screen); 
    fiveMinuteButton = (Button) findViewById(R.id.fiveminutesbuttonid); 
    circuitLength = 5; 
    InitialzeUIButtons(); 



    fiveMinuteButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      circuitLength = circuitLength + 5; 

     } 
    }); 
+0

我不想增加它+5。即使點擊了1000次,我也想將5存儲在circuitLength中。 –

+0

顯示您在InitialzeUIButtons()中編寫的代碼。 –

0

你的代碼是正確確保的onclick按鈕調用或不 我想,你的onclick按鈕不起作用

0

您的代碼無疑是正確的。如果你在Activity中改變了任何變量,它會保持改變,它有三種可能性改變爲初始值。

  1. 活動停止。
  2. 重新創建活動。
  3. 變量手動更改。

,你在這裏

說我把日誌。它只是暫時存儲該值,然後我再次呼叫 在OnClickListener之外登錄後,該值爲空。

我相信你正在做這樣的事情。

private Button fiveMinuteButton; 
int circuitLength; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_workout_settings_screen); 

    fiveMinuteButton = (Button) findViewById(R.id.fiveminutesbuttonid); 

    fiveMinuteButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      circuitLength = 5; 

      Log.e("count", ""+circuitLength); 
     } 
    }); 
    Log.e("count", ""+circuitLength); 
} 

現在,當你的應用程序啓動onCreate將被默認稱爲circuitLength是空,因此很明顯你在日誌越來越空。

我希望很清楚。如果您有任何疑問,請隨時提問。