如何将字符串形式的文本数据传递给下一个活动?

Avi*_*nku 12 string android button android-activity

我正在开发一个Android应用程序,其中我已经采取了两个按钮和一个编辑文本框.我想通过点击其中一个按钮将编辑文本框的数据从字符串传递到下一个活动,如何将文本传递给下一个活动并在新启动的活动中接收该文本,以便使用文本在那里面.

我的第一个活动的代码是

EditText Urlis=(EditText)findViewById(R.id.entry);
final Button button = (Button) findViewById(R.id.ok);
final Intent i=new Intent(this , RSSReder.class);
final String choice=Urlis.getText().toString();

i.putExtra("key", choice);
button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        startActivity(i);
    }    
});  
Run Code Online (Sandbox Code Playgroud)

对于被叫活动是

public class RSSReder extends Activity implements OnItemClickListener {

    public String RSSFEEDOFCHOICE;
    public final String tag = "RSSReader";
    private RSSFed feed = null;

    /** Called when the activity is first created. */

    public void onCreate(Bundle abc) {
        super.onCreate(abc);
        setContentView(R.layout.next1);

        Intent i = getIntent();
        RSSFEEDOFCHOICE =i.getStringExtra("key");

        // go get our feed!
        feed = getFeed(RSSFEEDOFCHOICE);

        // display UI
        UpdateDisplay();

    }
}
Run Code Online (Sandbox Code Playgroud)

有什么我需要改变或删除.

Squ*_*onk 16

使用完毕后,setContentView(...)你需要引用你EditText的文本,如...

EditText et = (EditText) findViewById(R.id.my_edit_text);
String theText = et.getText().toString();
Run Code Online (Sandbox Code Playgroud)

要将它传递给另一个Activity你使用Intent.例...

Intent i = new Intent(this, MyNewActivity.class);
i.putExtra("text_label", theText);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

在新的Activity(in onCreate())中,您获取Intent并检索String ...

public class MyNewActivity extends Activity {

    String uriString;

    @Override
    protected void onCreate(...) {

        ...

        Intent i = getIntent();
        uriString = i.getStringExtra("text_label");

    }
}
Run Code Online (Sandbox Code Playgroud)

  • `String theText = et.getText();`会抛出一个编译时错误,因为`getText()`返回一个`Editable`对象.你也必须调用`toString()`方法. (2认同)