我的 MainActivity 屏幕上有 2 个按钮。 Button1 处理用户输入,而 Button2 引导用户进入下一个 Activity 屏幕,该屏幕根据第一个按钮处理的输出显示另一个输出。每当我单击 Button1 时,它都会计算输入,但会自动引导我进入下一个 Activity 屏幕并显示我需要的输出,这使得 Button2 变得无法使用。当我单击 Button2 时,它会引导我进入下一个 Activity 屏幕,但它不会显示我需要的输出,它只显示 TextView 的 id。
两个按钮的onClick属性都是calculateClickHandler。我认为问题在于Button2的属性必须与Button1不同。我尝试为 Button2 创建另一个点击处理程序,但它不起作用:
public void nextClickHandler(View view)
{
if (view.getId() == R.id.DGButton)
{
Intent myIntent = new Intent(MainActivity.this, Activity2.class);
startActivity(myIntent);
}
}
这是 MainActivity 的计算按钮点击处理程序:
public void calculateClickHandler(View view)
{
//handle the click of the calculator button
if (view.getId() == R.id.CalculateButton)
{
//code here
Button next = (Button) findViewById(R.id.DGButton);
next.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
Intent myIntent = new Intent(MainActivity.this, Activity2.class);
startActivity(myIntent);
}
});
Intent intent1 = new Intent(MainActivity.this, Activity2.class);
intent1.putExtra("key", bmiValue);
startActivity(intent1);
}
}
Activity2 的后退按钮单击处理程序:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Button next = (Button) findViewById(R.id.BackToBMI);
next.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
}
});
TextView dietplanText = (TextView)findViewById(R.id.DietPlanText);
TextView categoryText = (TextView)findViewById(R.id.BMICategory);
Bundle extras = getIntent().getExtras();
if(extras != null)
{
//code here
}
}
我是 Android 编程的初学者,因此我们将不胜感激。
最佳答案
在calculateClickHandler(View view)中,您应该在if条件之后使用else来启动 Activity 。
“两个按钮的onClick属性都是calculateClickHandler。”-你说。但那么什么是 nextClickHandler(View view) 因为我无法理解。
关于java - Android Eclipse 中按钮的单击处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14174238/