如何在android studio中使用按钮切换页面?

时间:2016-04-19 21:41:09

标签: java android android-studio

我正在尝试使用btn2将我的页面从MainActivity切换到CalcPage.class。

似乎无法弄清楚我做错了什么。

我在btn2,OnClickListener,Override和View v下面有错误行

这是我的MainActivity.java

package edu.khershockolivetcollege.ballistic_calculator;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.content.Intent;
import java.text.DecimalFormat;

public class MainActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.content_main);

    Button btn1 = (Button)findViewById(R.id.calculate);
    Button btn2 = (Button)findViewById(R.id.calculate);
    final EditText et1 = (EditText)findViewById(R.id.muzzleText);
    final EditText et2 = (EditText)findViewById(R.id.rangeText);
    final TextView time = (TextView)findViewById(R.id.timeAnswer);
    final TextView bulletdrop = (TextView)findViewById(R.id.dropAnswer);
    btn1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            DecimalFormat f = new DecimalFormat("##.00");
            double x = new Integer(et1.getText().toString());
            double y = new Integer(et2.getText().toString());
            double timetotarget = y / x;
            double grav = 9.81;
            double timesquared = timetotarget * timetotarget;
            double drop = grav * timesquared;
            time.setText("  " + f.format(timetotarget) + " seconds");
            bulletdrop.setText("  " + f.format(drop) + " meters");
        }

        btn2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent i=new Intent(context, CalcPage.class);
                startActivity(i);
            }


    });
}

}

1 个答案:

答案 0 :(得分:1)

您似乎在btn1 OnClickListener中设置了btn2 OnClickListener。如果你在外面做,并关闭所有花括号,它应该工作。

像这样:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.content_main);

    Button btn1 = (Button)findViewById(R.id.calculate);
    Button btn2 = (Button)findViewById(R.id.calculate);
    final EditText et1 = (EditText)findViewById(R.id.muzzleText);
    final EditText et2 = (EditText)findViewById(R.id.rangeText);
    final TextView time = (TextView)findViewById(R.id.timeAnswer);
    final TextView bulletdrop = (TextView)findViewById(R.id.dropAnswer);
    btn1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            DecimalFormat f = new DecimalFormat("##.00");
            double x = new Integer(et1.getText().toString());
            double y = new Integer(et2.getText().toString());
            double timetotarget = y / x;
            double grav = 9.81;
            double timesquared = timetotarget * timetotarget;
            double drop = grav * timesquared;
            time.setText("  " + f.format(timetotarget) + " seconds");
            bulletdrop.setText("  " + f.format(drop) + " meters");
        }
    });

    btn2.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick (View v){
            Intent i = new Intent(context, CalcPage.class);
            startActivity(i);
        }
    });
}