[英]Int Value is not changing in button.SetOnClickListener()
我試圖改變時circuitLength的價值fiveMinuteButton
被點擊 ,但是,值不會被改變。
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" />
是的,每次您單擊fiveMinuteButton
時都initializing
值5時,它不會被更新(即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;
}
});
您的代碼正確無誤,請確保onclick按鈕調用正確,或者我認為您的onclick按鈕不起作用
試試這個代碼,然后讓我知道,然后我們進一步調查。
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();
}
});
您的代碼肯定是正確的。 如果您在Activity中更改任何變量,它仍然會更改,則有三種可能性將其更改為初始值。
就像你在這里說的
我放了一個日志。 它僅臨時存儲該值,然后在OnClickListener外部再次調用log后,該值為null。
我相信您正在做這樣的事情。
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
是空,因此很明顯你在日志越來越空。
我希望這很清楚。 如果您有任何疑問,請隨時詢問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.