我正在创建一个简单的应用程序,并且在单击按钮时想要打开一个新的Activity
。我在线查看了一些教程,但是我的代码中一直有错误,我不知道如何摆脱它。
我的代码:
public class MainActivity extends AppCompatActivity {
private static Button button_convert;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
onClick_Convert();
public void onClick_Convert() {
onClick_Convert = (button_convert) findViewById(R.id.button_convert);
onClick_Convert.setOnClickListener (
new View.onClickListener() {
public void onClick (View v) {
Intent intent = new Intent("com.example.jamesk93.bmi_app.SecondActivity");
startActivity(intent);
}
}
);
}
final Button button_calc = (Button) findViewById(R.id.button_calc);
final EditText field_weight = (EditText) findViewById(R.id.field_height);
final EditText field_height = (EditText) findViewById(R.id.field_height);
final TextView view_result = (TextView) findViewById(R.id.view_result);
final TextView view_msg = (TextView) findViewById(R.id.view_msg);
button_calc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View V) {
double weight;
double height;
double bmi;
String msg = "";
weight = Double.parseDouble(field_weight.getText().toString());
height = Double.parseDouble(field_height.getText().toString());
if (field_height.getText().toString().equals("") || field_weight.getText().toString().equals("")) {
Toast.makeText(getApplicationContext(), "No Valid Values", Toast.LENGTH_LONG);
} else {
bmi = height * height;
bmi = weight / bmi;
view_result.setText(String.valueOf(bmi));
if (bmi < 18.5) {
msg = "Underweight";
} else if (bmi > 18.5 && bmi < 25) {
msg = "Normal";
} else if (bmi > 25) {
msg = "Overweight";
}
view_msg.setText(msg);
}
}
});
}
}
我很确定这是我使用括号和缩进产生错误。我试图重新定位它们但它似乎没有解决任何问题。
如果我评论第21-33行是onclick
意图的代码,它运行正常。如果您需要查看我的其他任何文件,只需评论哪些文件,我就会为您上传。
答案 0 :(得分:1)
您的代码应该是这样的:
private Button button_convert;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button_convert= (Button) findViewById(R.id.button_convert);
onClick_Convert();
}
public void onClick_Convert() {
button_convert.setOnClickListener (
new View.OnClickListener() {
@Override
public void onClick (View v) {
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
}
);
}
修改强>
有一些错误:
首先:
您正在尝试初始化“onClick转换”但未声明,实际上您的按钮名称是“按钮转换”。然后你尝试用“按钮转换”来投射它。你应该用“(按钮)”
投射你的按钮第二
您正尝试在Click事件中初始化按钮,您应该在事件之前初始化它,因为那时您的按钮将为null。
第三
启动活动的正确语法是:
Intent intent = new Intent(YourActivity.class, NewActivity.class);
startActivity(intent);
希望这对您有所帮助,我建议您查看以下链接:http://developer.android.com/intl/es/training/basics/firstapp/starting-activity.html