我正在创建一个应用程序,您可以在其中输入您的身高和体重,计算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是包含应显示输出的片段的活动。
答案 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
方法,则可能更容易找到错误。