我正在嘗試使用int
來打開不同的圖。我希望這個int
可以在按下按鈕時更改值,但不會更改。這是我的代碼:不能更改onClick
public class PatientDemographics extends Activity
{
private GraphicalView mChartView;
int num = 1;
int tabnum = 0;
int finalnum;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.tabviews);
LinearLayout ll = (LinearLayout) findViewById(R.id.buttons);
Button button1 = new Button(this);
button1.setText("Disease Type");
ll.addView(button1);
button1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
num = 1;
Intent i = new Intent(PatientDemographics.this, TabHelper.class);
i.putExtra("num", tabnum);
startActivity(i);
}
});
Button button2 = new Button(this);
button2.setText("Gender");
ll.addView(button2);
button2.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
num = 2;
Intent i = new Intent(PatientDemographics.this, TabHelper.class);
i.putExtra("num", tabnum);
startActivity(i);
}
});
Button button3 = new Button(this);
button3.setText("Age at Diagnosis");
ll.addView(button3);
button3.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
num = 3;
Intent i = new Intent(PatientDemographics.this, TabHelper.class);
i.putExtra("num", tabnum);
startActivity(i);
}
});
Button button4 = new Button(this);
button4.setText("Treatment Status");
ll.addView(button4);
button4.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
num = 4;
Intent i = new Intent(PatientDemographics.this, TabHelper.class);
i.putExtra("num", tabnum);
startActivity(i);
}
});
}
}
請忽略tabnum
。它用於確定所有內容的標籤,這是相同的。此外,我最初創建按鈕與XML,但每個選項卡需要不同數量的按鈕,我不知道如何做到這一點,所以我只是用代碼。
您可以看到,我初始化了num
到1
,然後嘗試在onClick
方法內更改它,但它永遠不會更改。如果您需要更多信息,請告訴我。
編輯:
protected void onSaveInstanceState(Bundle outState)
{
outState.putInt("num", num);
super.onSaveInstanceState(outState);
}
然後在的onCreate:
super.onCreate(savedInstanceState);
if(savedInstanceState != null)
{
num = savedInstanceState.getInt("num");
}
是,startActivity是使我損失了NUM值。你知道我能做什麼來解決這個問題嗎? – Seth 2012-07-23 14:39:53
但是,如果我在startActivity(i)之後移動num = x語句,則num在方法內發生更改。它只是永遠不會停留在onResume()中使用的數字 – Seth 2012-07-23 15:49:34
您有幾個不同的選項。我真的會考慮是否需要再次啓動活動,並且不能只運行更新活動的函數。您也可以使用共享首選項: http://android-er.blogspot.com/2011/01/example-of-using-sharedpreferencesedito.html 您也可以將該變量傳遞給活動並在活動中檢索它如下所示 http://stackoverflow.com/questions/2091465/how-do-i-pass-data-between-activities-in-android – 2012-07-23 20:03:43