android开发:想用putExtra和getStringExtra来实现数据传递,怎么用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android开发:想用putExtra和getStringExtra来实现数据传递,怎么用?相关的知识,希望对你有一定的参考价值。

我写的代码如下
1. main里的代码:
public class Mission3 extends Activity
public static final int REQUEST_CODE_MENU = 1001;

EditText usernameInput;
EditText passwordInput;

public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.mission3);

Button loginBtn = (Button)findViewById(R.id.loginBtn);
loginBtn.setOnClickListener(new OnClickListener()
public void onClick(View v)
String username = usernameInput.getText().toString();
String password = passwordInput.getText().toString();

Intent intent = new Intent(getApplicationContext(),Mission31.class);
intent.putExtra("username", username);
intent.putExtra("password", password);

startActivityForResult(intent, REQUEST_CODE_MENU);


);

usernameInput = (EditText)findViewById(R.id.UserNameInput);
passwordInput = (EditText)findViewById(R.id.passwordInpunt);




2. Mission31里的代码:
public class Mission31 extends Activity

public static final int RESPONSE_CODE_OK = 200;

public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.mission31);

TextView textview31 = (TextView)findViewById(R.id.textview31);

Intent received = new Intent();
String username = received.getStringExtra("username");
String password = received.getStringExtra("password");

textview31.setText(username);
Toast.makeText(this, username, Toast.LENGTH_LONG).show();




我想在textview1和toast上显示 username的数据,可是上面的代码输出的结果总是null。怎么解决?

参考技术A Mission31的onCreate里面,用getIntent().getExtras();本回答被提问者和网友采纳

Android 中使用bundle.putExtra实现Activity之间的参数传递

1.Bundle简介:

Bundle主要用于传输数据,它保存的数据,是以key-value的形式存储的。
Bundle常用于在Activity间传递数据 ,当bundle传递的是对象或对象数组时,必须实现Serializable或Parcelable接口.。

intent.putExtra(键值对,具体要传递的值)

 @Override
    public void onClick(View v) {
        Intent intent = new Intent(this,MainActivity2.class);
        //将要传递的值,附加给intent对象
        intent.putExtra("a1","hello");
        intent.putExtra("a2","hello2");
        startActivity(intent);
    }

req.getString(键值对)

@Override
    protected void onResume() {
        super.onResume();
        getBundleInfo();
    }
    private void getBundleInfo() {
        Bundle req=getIntent().getExtras();
        //取出intent中附加的数据,通过 键值对 来传递
        String a11=req.getString("a1");
        String a22=req.getString("a2");

        tv1.setText(a11);
        tv2.setText(a22);
    }

以上是关于android开发:想用putExtra和getStringExtra来实现数据传递,怎么用?的主要内容,如果未能解决你的问题,请参考以下文章

Android:intent.putExtra 在服务类中获取通知

没有启动活动的android putextra

android 学习笔记 杂记1

Android Studio中如何在Activity跳转之间传递数据

从 Android 上的 Qt 应用程序通过(显式)意图调用外部活动 - putExtra 不起作用

intent.putExtra 的所有属性以在 android 中裁剪图像