按钮点击添加新活动

时间:2015-11-28 14:57:55

标签: java android onclicklistener

我正在创建一个简单的应用程序,并且在单击按钮时想要打开一个新的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意图的代码,它运行正常。如果您需要查看我的其他任何文件,只需评论哪些文件,我就会为您上传。

1 个答案:

答案 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