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

标签 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);
            }


    });
}

}

最佳答案

您似乎正在将 btn2 OnClickListener 设置在 btn1 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);
        }
    });
}

关于java - android studio中如何使用按钮切换页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36730005/

相关文章:

java - 保存实体对象时 Hibernate 复合主键问题

java - 智能 : Cannot import classes from other modules in my project?

java - 在日志文件中以表格格式打印 hashmap 中的数据

java - 请求 HTTPS URL

android - 使用 PJSUA 在 android 中记录 sip 调用

Android Deeplink pathPrefix 属性被忽略

Android:应用程序构建和安装

android - Android Studio中重复gradle属性错误

android - Google Developers 不允许我使用 android.hardware.Camera 或 camera2

android - 在我的手机上同时保留应用程序的发布版和测试版