我正在尝试使用int
打开不同的图表。我希望这个int
在按下按钮时更改值,但它不会改变。这是我的代码:
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");
}
答案 0 :(得分:1)
您启动与按钮点击结果相同类型的新Activity
。
在新Activity
中,变量初始化为1。
如果您想在新Activity
中使用新值,则应该从Intent
获取该值,并在onCreate()
的{{1}}方法中分配变量。
您应该将此类内容添加到Activity
:
onCreate()
答案 1 :(得分:0)
我认为你可能没有通过调试器验证是否正在更改num。因为我在我的代码中做的与你完全一样。我建议在更改num的行上设置一个断点,看看num是否有变化。我假设开始活动导致你丢失num值。