[英]Android TextView settext() Nullpointer
在我的Android應用中,我試圖顯示個性化消息“ Welcome,[name]!”。 應用啟動時。 通過錯誤日志,我確定在提示用戶輸入用戶名后,我已經成功保存了該用戶名,並在以后的啟動中成功檢索了該名稱。 但是當我嘗試更改默認的“歡迎使用!”時 改為“歡迎使用[名稱]!” 使用settext,我得到一個空指針異常。
我的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();}
}
}
基於其他類似的帖子,我嘗試確保在包含相關TextView的xml文件上使用setContentView,並且嘗試清潔和重建項目。 它仍然給我一個NullPointerException。 任何幫助將不勝感激!
NPE在前面。 您尚未初始化mainSharedPreferences
對象。
字符串名稱;
靜態字符串EXTRA_NAME;
EditName =(EditText)findViewById(R.id.name);
名稱= EditName.getText()。toString();
Intent.putExtra(“ EXTRA_NAME”,名稱);
您將在字符串名稱中包含EditName(用戶輸入的內容),並且還可以將字符串名稱放入靜態字符串EXTRA NAME中(如果您想將其發送給另一個類),或者可以創建一個單獨的類與getter和setter一起用作對象..
也許您必須在xml文件android:text =“ name”中設置文本視圖
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.