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

时间:2011-05-31 04:06:12

标签: android string 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);
    }    
});  

和被叫活动是

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();

    }
}

我需要更改或移除任何内容。

4 个答案:

答案 0 :(得分:16)

使用setContentView(...)后,您需要引用EditText并获取文字,例如......

EditText et = (EditText) findViewById(R.id.my_edit_text);
String theText = et.getText().toString();

要将其传递给另一个Activity,请使用Intent。实施例...

Intent i = new Intent(this, MyNewActivity.class);
i.putExtra("text_label", theText);
startActivity(i);

在新的Activity中(在onCreate()中),你得到了Intent并检索了String ...

public class MyNewActivity extends Activity {

    String uriString;

    @Override
    protected void onCreate(...) {

        ...

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

    }
}

答案 1 :(得分:2)

您可以使用意图来实现此目的。这是一个tutorial

同时检查How to pass the values from one activity to previous activity

点击按钮上的字符串内容。

 EditText mText = (EditText)findViewById(R.id.edittext1);

Button mButton = (Button)findViewById(R.id.button1);

mButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                          String text = mText.getText.toString();
                          Intent intent = new Intent(this, Activity2.class);
                          intent.putExtra("key", text);
                          startActivity(intent);
                    }
                });

答案 2 :(得分:2)

您必须使用Intent将数据传递到下一个活动。

Intent intent = new Intent(CurrentActivity.this,NextActivity.class);
intent.putExtra("sampleString", "youstringdata");

在NextActivity中:

String sampleData = getIntent().getExtras().getLong("sampleString");

答案 3 :(得分:2)

在Button的onClick Listener中尝试以下内容,

String str=editText.getEditableText().toString();

现在使用你的意图,

Intent intent=new Intent(this,nextActivity.this);
intent.putExtra("editText_value",str);
startActivity(intent);