有人能告诉我到底如何使用getExtra()和putExtra()的意图吗?实际上我有一个字符串变量str,它存储一些字符串数据。现在,我想把数据从一个活动发送到另一个活动。

  Intent i = new Intent(FirstScreen.this, SecondScreen.class);   
  String keyIdentifer  = null;
  i.putExtra(strName, keyIdentifer );

然后在SecondScreen.java中

 public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.table);
        TextView userName = (TextView)findViewById(R.id.userName);
        Bundle bundle = getIntent().getExtras();

        if(bundle.getString("strName")!= null)
        {
            //TODO here get the string stored in the string variable and do 
            // setText() on userName 
        }

    }

我知道这是一个非常基本的问题,但不幸的是,我被困在这里了。 请帮助。

谢谢,

编辑:这里的字符串,我试图从一个屏幕传递到另一个是动态的。 也就是我有一个editText,在那里我获取字符串,不管用户类型是什么。然后在myEditText.getText(). tostring()的帮助下。我得到输入的值作为一个字符串,然后我必须传递这个数据。


当前回答

一个小补充:你不需要为键创建自己的名字,android提供了这些,f.ex。Intent.EXTRA_TEXT。修改接受的答案:

Intent i = new Intent(FirstScreen.)这一点,SecondScreen.class); 字符串strName = null; i.putExtra(意图。EXTRA_TEXT strName); 然后,要检索值,请尝试如下操作: 字符串部份; Bundle extras = getIntent().getExtras(); If (extras == null) { 部份=零; }其他{ 部份= extras.getString (Intent.EXTRA_TEXT); }

其他回答

第一个Screen.java

text=(TextView)findViewById(R.id.tv1);
edit=(EditText)findViewById(R.id.edit);
button=(Button)findViewById(R.id.bt1);

button.setOnClickListener(new OnClickListener() {
    public void onClick(View arg0) {
        String s=edit.getText().toString();

        Intent ii=new Intent(MainActivity.this, newclass.class);
        ii.putExtra("name", s);
        startActivity(ii);
    }
});

第二个Screen.java

public class newclass extends Activity
{
    private TextView Textv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.intent);
        Textv = (TextView)findViewById(R.id.tv2);
        Intent iin= getIntent();
        Bundle b = iin.getExtras();

        if(b!=null)
        {
            String j =(String) b.get("name");
            Textv.setText(j);
        }
    }
}

一个小补充:你不需要为键创建自己的名字,android提供了这些,f.ex。Intent.EXTRA_TEXT。修改接受的答案:

Intent i = new Intent(FirstScreen.)这一点,SecondScreen.class); 字符串strName = null; i.putExtra(意图。EXTRA_TEXT strName); 然后,要检索值,请尝试如下操作: 字符串部份; Bundle extras = getIntent().getExtras(); If (extras == null) { 部份=零; }其他{ 部份= extras.getString (Intent.EXTRA_TEXT); }

把函数

etname=(EditText)findViewById(R.id.Name);
        tvname=(TextView)findViewById(R.id.tvName);

        b1= (ImageButton) findViewById(R.id.Submit);

        b1.setOnClickListener(new OnClickListener() {
            public void onClick(View arg0) {
                String s=etname.getText().toString();

                Intent ii=new Intent(getApplicationContext(), MainActivity2.class);
                ii.putExtra("name", s);
                Toast.makeText(getApplicationContext(),"Page 222", Toast.LENGTH_LONG).show();
                startActivity(ii);
            }
        });



getfunction 

public class MainActivity2 extends Activity {
    TextView tvname;
    EditText etname;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_activity2);
        tvname = (TextView)findViewById(R.id.tvName);
        etname=(EditText)findViewById(R.id.Name);
        Intent iin= getIntent();
        Bundle b = iin.getExtras();

        if(b!=null)
        {

          String j2 =(String) b.get("name");

etname.setText(j2);
            Toast.makeText(getApplicationContext(),"ok",Toast.LENGTH_LONG).show();
        }
    }

先放绳子

Intent secondIntent = new Intent(this, typeof(SecondActivity));
            secondIntent.PutExtra("message", "Greetings from MainActivity");

在此之后检索它

var message = this.Intent.GetStringExtra("message");

这就是全部;)

这是非常容易实现意图在Android..它需要你从一个活动移动到另一个活动,我们有两个方法putExtra();现在我向你展示这个例子..

    Intent intent = new Intent(activity_registration.this, activity_Login.class);
                intent.putExtra("AnyKeyName", Email.getText().toString());  // pass your values and retrieve them in the other Activity using AnyKeyName
                        startActivity(intent);

现在我们必须从AnyKeyName参数中获取值,下面提到的代码将帮助完成这一点

       String data = getIntent().getExtras().getString("AnyKeyName");
        textview.setText(data);

我们可以很容易地从Intent中设置接收值,无论我们需要什么。