В моем приложении для Android я пытаюсь отобразить персонализированное сообщение «Добро пожаловать, [имя]!» когда приложение запускается. Через журналы ошибок я решил, что я успешно сохраню имя пользователя после его запроса, чтобы его получить, и успешно получить это имя при последующих запусках. Но когда я пытаюсь изменить значение по умолчанию «Добро пожаловать!» на «Добро пожаловать, [имя]!» используя settext, я получаю исключение нулевого указателя.Android TextView settext() Nullpointer
Мой XML (activity_main.xml)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFC2"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin">
<TextView
android:id="@+id/main_textview"
android:text="Welcome!"
android:textColor="#000000"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textSize="40sp"
android:typeface="serif"/>
</RelativeLayout>
И мой Java
public class main extends Activity {
TextView mainTextView;
private static final String PREFS = "prefs";
private static final String PREF_NAME = "name";
SharedPreferences mainSharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mainTextView = (TextView) findViewById(R.id.main_textview);
String name = mainSharedPreferences.getString(PREF_NAME, "");
if(name.length() > 0){mainTextView.setText("Welcome, " + name + "!");}
else{greeting();}
}
}
на основе других аналогичных сообщений, я попытался убедившись, что я использую setContentView на файл XML который содержит соответствующий TextView, и я пробовал очистить и перестроить проект. Он по-прежнему дает мне исключение NullPointerException. Любая помощь будет принята с благодарностью!
Если какие-либо из ответов сильфонный решает вашу проблему, отметьте его как ответ, щелкнув значок галочки рядом с ответом. – rcdmk