#java #android #android-intent
#java #Android #android-намерение
Вопрос:
У меня возникли некоторые трудности с передачей дополнительных функций намерения между действиями. Я новичок в Android, и даже эта мелочь действительно беспокоит меня.
Я пытаюсь передать информацию, введенную в EditText в MyActivity.java в TextView в DisplayMessageActivity.java когда я нажимаю кнопку.
Вот MyActivity.java код:
public class MyActivity extends Activity {
public final static String EXTRA_MESSAGE = "myfirstapp.example.com.myapplication.MESSAGE";
public void sendMessage(View view) {
Intent message_send = new Intent(this, DisplayMessageActivity.class);
EditText edit_message = (EditText) findViewById(R.id.edit_message);
String message = edit_message.getText().toString();
message_send.putExtra(EXTRA_MESSAGE, message);
MyActivity.this.startActivity(message_send);
}
И вот код для DisplayMessageActivity.java:
public class DisplayMessageActivity extends Activity {
@Overide
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent message_send = getIntent();
String message = message_send.getStringExtra(MyActivity.EXTRA_MESSAGE);
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
setContentView(R.layout.activity_display_message);
}
Если бы кто-нибудь мог сказать мне, что происходит, это было бы здорово. Спасибо!
Комментарии:
1. Вы ищете объяснение того, как это работает, или это работает не так, как ожидалось?
Ответ №1:
DisplayMessageActivity
создает новое TextView
и задает переданное сообщение, но новое TextView
нигде не отображается.
скорее всего, вместо создания нового TextView
, вы захотите setContentView
сначала, а затем вызвать findViewById
, чтобы найти свой TextView
.
весь код передачи строк правильный.
@Overide
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_message);
Intent message_send = getIntent();
String message = message_send.getStringExtra(MyActivity.EXTRA_MESSAGE);
TextView textView = (TextView) findViewById(R.id.my_text_view);
textView.setTextSize(40);
textView.setText(message);
}
Комментарии:
1. пожалуйста, не забудьте проголосовать за / принять, если это решит вашу проблему.
Ответ №2:
В dispalyActivity
вы можете использовать этот код
Bundle b = getIntent().getExtra();
String message = b.getString("message name");
вместо
Intent message_send = getIntent();
String message = message_send.getStringExtra(MyActivity.EXTRA_MESSAGE);