不能去下一个活动

时间:2015-04-10 03:32:13

标签: android-intent android-fragments double

我正在创建一个应用程序,您可以在其中输入您的身高和体重,计算bmi然后单击下一个按钮转到另一个类并在类中的片段上显示bmi结果。我想知道为什么它停止后单击按钮。 这是我的代码:

package com.example.hcon;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;


public class FirstActivity extends Activity {

    Button button1;

    EditText et_name;

    EditText et_height;

    EditText et_weight;

    double ht = 0;

    double wt = 0;

    TextView bmiOut;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);

        et_name = (EditText) findViewById(R.id.et_name);
        button1 = (Button) findViewById(R.id.button1);


        button1.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {

                et_height = (EditText) findViewById(R.id.et_height);
                et_weight = (EditText) findViewById(R.id.et_weight);

                ht = Double.parseDouble(et_height.getText().toString());
                wt = Double.parseDouble(et_weight.getText().toString());


                double bmi = wt / (ht * ht);


                Intent a = new Intent(FirstActivity.this, SecActivity.class);
                a.putExtra(out, out);
                Toast.makeText(FirstActivity.this, "Welcome " + et_name.getText().toString(), Toast.LENGTH_LONG).show();
                startActivity(new Intent(FirstActivity.this, SecActivity.class));

            }
        });
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.first, menu);
        return true;
    }

}  

SecActivity.class是包含应显示输出的片段的活动。

3 个答案:

答案 0 :(得分:1)

使用getApplicationContext并传递intent中的上下文。并在a

中传递startActivity
Intent a = new Intent(getApplicationContext(), SecActivity.class);
a.putExtra(out, out);
//your toast
startActivity(a));

答案 1 :(得分:0)

您可能错误地启动了您的活动。在创建意图时尝试获取当前活动,而不是引用类。您还希望使用startActivity启动您的意图,而不是再次创建新意图。

Intent a = new Intent(getActivity(), SecActivity.class);
a.putExtra(out, out);
Toast.makeText(FirstActivity.this,  "Welcome "+et_name.getText().toString(), Toast.LENGTH_LONG).show();
startActivity(a);

答案 2 :(得分:0)

您可能没有将SecActivity添加到manifest

如果您显示SecActivity类的onCreate方法,则可能更容易找到错误。