我知道這個問題已經被問過幾次,但它對我不起作用,所以我正在尋求幫助。
我想獲得 EditText 的值,所以我要做的是:
EditText def_db=(EditText) findViewById(R.id.def_db);
String def= def_db.getText().toString();
def_db 是我的 EditText 的 ID。
當我啟動應用程式時,它會立即崩潰,但是當我評論第二行 (String def= def_db.getText().toString();) 時,應用程式啟動良好。
感謝您的幫助
uj5u.com熱心網友回復:
根據您提供的資訊不足,我假設您的問題與以下情況之一有關:
您在活動中的 editText id 與 XML 中的不同,因此使 def_db 為空
您在將初始化 XML 布局的 setContentView 方法之前使用您的代碼
setContentView 上的 XML 名稱不是您的 editText 所在的名稱
請評論完整的錯誤訊息以獲得更詳細的答案。
uj5u.com熱心網友回復:
您遇到的問題稱為Null Pointer Exception. 在此,您嘗試在不初始化視圖的情況下獲取視圖的值。看到這個:
TextView myTv;
//onCreate method code
myTv.setText("Helo");
發生什么了?你會得到同樣的錯誤。為什么?因為那個物件是空的,它在 java 中看起來像這樣:
null.setText("Helo");
但是,什么是null?這沒什么。您需要將一些值傳遞給物件以使用其方法和變數。在這種情況下,該值是它需要的視圖。那么,現在讓我們看看代碼是怎樣的,以及 java 是如何看待它的:
TextView myTv;
//onCreate method code
myTV = findViewById(R.id.yourViewId);
myTv.setText("Helo");
這將正常作業。現在java如何看待它:
myTv.setText("Helo");
我們想要這個。所以,先嘗試初始化視圖。
但是,我希望你使用視圖系結
uj5u.com熱心網友回復:
這是 add_word.xml 的代碼,其中有 2 個 EditText。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Entrez un mot"
android:textSize="25sp"
android:layout_marginTop="20dp"
android:textStyle="bold"
android:layout_gravity="center"/>
<EditText
android:id="@ id/mot_db"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:textSize="25sp"
android:layout_marginTop="20dp"
android:maxLines="1"
android:layout_gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Entrez sa definition"
android:textSize="25sp"
android:layout_marginTop="20dp"
android:textStyle="bold"
android:layout_gravity="center"/>
<EditText
android:id="@ id/def_db"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:textSize="25sp"
android:layout_marginTop="20dp"
android:maxLines="1"
android:layout_gravity="center"/>
</LinearLayout>
現在是使我的應用程式在 MainActivity.java 中崩潰的部分
EditText mot_db= (EditText) findViewById(R.id.mot_db);(works fine)
String mot= mot_db.getText().toString(); (that's where the problem is)
我的其他 EditText 也是同樣的問題。
訊息錯誤:原因:java.lang.NullPointerException:嘗試在空物件參考上呼叫虛擬方法'android.text.Editable android.widget.EditText.getText()'
謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/471538.html
上一篇:在Kotlin中定義一個按鈕
