Я получаю NullPointerException для строки editText.setText(buttonText);
, поэтому похоже, что мой editText
уничтожается после изменения ориентации. Я знаю жизненный цикл активности, но не знаю, где разместить объявление editText
.
Тем не менее, buttonText заполнен правильно.
Мои занятия:
package com.example.orientation;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import java.io.OutputStream;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.Display;
import android.view.Menu;
import android.view.MenuItem;
import android.view.WindowManager;
import android.widget.EditText;
@SuppressLint("NewApi")
public class MainActivity extends FragmentActivity {
EditText editText;
String buttonText = "";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("StateInfo", "onCreate");
editText = (EditText) findViewById(R.id.txtField1);
if (savedInstanceState != null) {
editText.setText(buttonText);
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putString("buttonId", editText.getText().toString());
super.onSaveInstanceState(outState);
};
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
buttonText = savedInstanceState.getString("buttonId");
//editText.setText(buttonText);
};
}
XML:
<EditText
android:id="@+id/txtField1"
android:inputType="text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
EDIT: Отсортировано! У меня был другой макет для альбомной ориентации, и в этом XML у меня не было элемента EditText.
buttonText
из моего кода, в моем примере этоeditText
, который равен нулю. - person divix   schedule 31.10.2015