Как передать текстовые данные в форме строки для следующего действия?
Я разрабатываю приложение для 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();
}
}
есть что-то, что мне нужно изменить или удалить.
Ответы
Ответ 1
После того, как вы использовали 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);
В новой операции (в onCreate()
) вы получаете Intent и извлекаете String...
public class MyNewActivity extends Activity {
String uriString;
@Override
protected void onCreate(...) {
...
Intent i = getIntent();
uriString = i.getStringExtra("text_label");
}
}
Ответ 2
Вы можете использовать намерения для этой цели. Здесь учебник для этого.
Также проверьте Как передать значения из одного действия в предыдущее действие
Чтение содержимого кнопки String on Button.
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);
}
});
Ответ 3
Вы должны использовать Intent для передачи данных в следующую активность.
Intent intent = new Intent(CurrentActivity.this,NextActivity.class);
intent.putExtra("sampleString", "youstringdata");
В NextActivity:
String sampleData = getIntent().getExtras().getLong("sampleString");
Ответ 4
Внутри вашей кнопки onClick Listener попробуйте следующее:
String str=editText.getEditableText().toString();
Теперь используйте свое намерение,
Intent intent=new Intent(this,nextActivity.this);
intent.putExtra("editText_value",str);
startActivity(intent);