Я пытаюсь установить текст, когда я нажимаю кнопку ввода на первом экране, чтобы он выглядел как второе изображение. Всякий раз, когда я пытаюсь установить текст, на втором экране ничего не отображается. Я частично извлек часть кода в первом действии, потому что они неактуальны.Android onActivityResult() с намерением
Моя первая деятельность
public class ActivityLoaderActivity extends Activity {
static private final int GET_TEXT_REQUEST_CODE = 1;
private void startExplicitActivation() {
Log.i(TAG,"Entered startExplicitActivation()");
Intent explicitIntent = null;
explicitIntent = new Intent(ActivityLoaderActivity.this, ExplicitlyLoadedActivity.class);
startActivityForResult(explicitIntent, GET_TEXT_REQUEST_CODE);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i(TAG, "Entered onActivityResult()");
if (requestCode == GET_TEXT_REQUEST_CODE) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
String value = (String) data.getExtras().getString("userInputMessage");
mUserTextView.setText(value);
}
}
}
}
Моя вторая деятельность
общественного класса ExplicitlyLoadedActivity расширяет активность {
static private final String TAG = "Lab-Intents";
private EditText mEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.explicitly_loaded_activity);
// Get a reference to the EditText field
mEditText = (EditText) findViewById(R.id.editText);
// Declare and setup "Enter" button
Button enterButton = (Button) findViewById(R.id.enter_button);
enterButton.setOnClickListener(new OnClickListener() {
// Call enterClicked() when pressed
@Override
public void onClick(View v) {
enterClicked();
}
});
}
// Sets result to send back to calling Activity and finishes
private void enterClicked() {
Log.i(TAG,"Entered enterClicked()");
//Save user provided input from the EditText field
mEditText.toString();
Intent resultIntent = new Intent();
resultIntent.putExtra("userInputMessage ", "mEditText");
setResult(RESULT_OK, resultIntent);
finish();
}
}
Спасибо, что работает. Вы имеете в виду определение значения с помощью public static final string? Зачем? – TykiMikk
Определение строки как постоянного значения вместо дублирования строкового литерала в вашем коде предотвратило бы ошибку в вашем приложении. Есть много веских причин, чтобы избежать дублирования строковых литералов в коде, я предлагаю Googling, что вы не знакомы с этой идеей. – Jameson