因此,我试图在主活动中提供的2个EditTexts中输入用户输入的2个整数值,并将它们一起添加。然后,我希望android应用程序切换到第二个Activity,并在EditText框中显示从前一个(主)Activity中输入2 EditText框的2个值的总和。
我认为我走在正确的轨道上,但我不太确定如何在第二项活动中获得总和。我试过搞乱捆绑等等,但我仍然无法弄明白。
* *重新编辑以反映一些建议。第二个活动仍然没有显示总数......我认为这是某种转换错误。
***我几乎肯定它与第二个活动有关......第一个看起来对我来说
** PERFECT!这是转换错误。谢谢大家的帮助:D
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void OnClick(View v) //android:onClick="OnClick" added to activity_main.xml for this button
{
Intent intent = new Intent(MainActivity.this, Summation.class);
EditText v1 = (EditText)findViewById(R.id.editText1);
EditText v2 = (EditText)findViewById(R.id.editText2);
int first = Integer.parseInt(v1.getText().toString());
int second = Integer.parseInt(v2.getText().toString());
String sum = String.valueOf(first + second);
intent.putExtra("sum", sum);
startActivity(intent);
}
}
第二个活动类
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.EditText;
public class Summation extends Activity
{
//Second Activity
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
String sum = (getIntent().getExtras().getString("sum"));
EditText addsum = (EditText)findViewById(R.id.editText1);
addsum.setText(sum);
}
}
答案 0 :(得分:1)
您无法直接从edittext分配int
值。您需要分配编辑文本,如
EditText eText1 = (EditText) findViewById(R.id.yourfirstedittext)
与你的第二个相同。然后获取值
int firstNum = Integer.parseInt(eText1.getValue.toString())
当然与第二个相同。然后,您可以将这两个ints
添加到一起,只需将其与intent.putExtra("sume, sum)
一起传递即可。然后使用Activity
getIntent()
中获取它们
Intent ci = getIntent();
final int sum = ci.getIntExtra("sum", yourDefaultIntValue)
如果您作为int
传递,则需要以这种方式执行,并获得String
的{{1}}值。但如果你作为int
传递,那么你很好
答案 1 :(得分:0)
嗯,一切都近乎完美,但是如果你没有将你的软件包附加到Indent,那么为bundle添加值是没有意义的,这就是你忘记的步骤:)所以要么添加
intent.putExtras( bundle );
或使您的代码不使用其他代码,而是看起来像:
Intent intent = new Intent();
int value1 =(R.id.editText1);
int value2 =(R.id.editText2);
double sum = (value1 + value2);
intent.putExtra("sum", sum);
intent.setClass(MainActivity.this, Summation.class);
startActivity(intent);
答案 2 :(得分:-1)
那太近了!在您的第一个活动中,请记住在startActivity(intent)
:
intent.putExtras(bundle);
然后在第二个活动类的onCreate方法结束时尝试:
String valu = getIntent().getExtras().getString("sum");
EditText addsum = (EditText)findViewById(R.id.editText1);
addsum.setText(valu, TextView.BufferType.NORMAL);