1

因此,为此,我尝试在主要活动中提供的 2 个 EditTexts 中获取用户输入的 2 个整数值并将它们加在一起。然后,我希望 android 应用程序切换到第二个 Activity,并在 EditText 框中显示从上一个(主)Activity 输入到 2 个 EditText 框中的 2 个值的总和。

我认为我在正确的轨道上,但我不太确定如何在第二个活动中获得总和。我试过搞乱捆绑包等,但我仍然无法弄清楚。

* *重新编辑以反映一些建议。第二个活动仍然没有显示总数......我认为这是某种转换错误。

***我几乎可以肯定它与第二个活动有关..第一个对我来说很合适

**完美的!这是一个转换错误。谢谢大家的帮助: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);

    }   
}
4

3 回答 3

1

您不能int直接从 edittext 分配您的值。您需要分配编辑文本,例如

EditText eText1 = (EditText) findViewById(R.id.yourfirstedittext)

和你的第二个一样。然后获取值

int firstNum = Integer.parseInt(eText1.getValue.toString())

当然与第二个相同。然后,您可以将这两个加ints在一起并简单地将它们传递给intent.putExtra("sume, sum). 然后让他们在你的第二ActivitygetIntent()

Intent ci = getIntent();
final int sum = ci.getIntExtra("sum", yourDefaultIntValue)

如果您以 an 身份传递,int则需要以这种方式进行并获取String. int但是,如果您以 a 的身份通过,String那么您就可以了

于 2012-12-01T23:03:41.283 回答
0

好吧,一切都几乎完美了,但是如果您不将捆绑包附加到缩进,那么向捆绑包添加值是没有意义的,这是您忘记的步骤 :) 所以要么添加

    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);
于 2012-12-01T22:55:18.760 回答
-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);
于 2012-12-01T22:57:17.207 回答