私はしばしばヌル例外エラーに遭遇し、私はいつもそれらを解決することになります。dbString = ""でNull例外エラーが発生しました。
ここにある:私はこの方法を使用してデータベースからいくつかのデータを印刷する必要が私のmainActivityで
public void printDB(){
String dbString= WinToDB.dbToString();
wordDB.setText(dbString);
word.setText("");
meaningDB.setText(dbString);
meaning.setText("");
}
DBSTRINGは
を返している私のデータベースハンドラから何本この方法運ぶ必要がありますpublic String dbToString(){
dbString="";
SQLiteDatabase db = getWritableDatabase();
String query= "SELECT * FROM " + TABLE_NAME + " WHERE 1 "; // * star means all 'columns' 1 means all 'row'
Cursor c = db.rawQuery(query, null);
//move to first location
c.moveToFirst();
while (!c.isAfterLast()){
if(c.getString(c.getColumnIndex("wishe")) != null){
dbString += c.getString(c.getColumnIndex("wishe"));
dbString += "\n";
}
}
db.close();
// db.releaseReference();
return dbString;
}
しかし、仮想メソッド 'void android.widget.TextView.setText(java.lang.CharSequence)'をnullで呼び出すと、がスローされます。オブジェクト参照
ここでlogcatだ:
.RuntimeException:活性ComponentInfo {com.mirdox.myapplication/com.mirdox.myapplication.MainActivity}を開始できません:java.lang.NullPointerExceptionが:起動しようとし仮想メソッド 'null nullオブジェクト参照での空のandroid.widget.TextView.setText(java.lang.CharSequence)' android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2362)の の のandroid.app.ActivityThread.handleLaunchActivity ActivityThread.java:2424) android.app.ActivityThread.access $ 900(ActivityThread.java:15) 5) android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1323) (android.os.Handler.dispatchMessage(Handler.java:102)) (android.os.Looper.loop(Looper.java: 139) android.app.ActivityThread.main(ActivityThread.java:5298) at java.lang.reflect.Method.invoke(ネイティブメソッド) at java.lang.reflect.Method.invoke(Method.java:372) ) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:950) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745) 原因:java.lang .NullPointerException:仮想メソッドを呼び出そうとしました 'void android.widget.TextView.setTe nullオブジェクト参照のxt(java.lang.CharSequence) ' com.mirdox.myapplication.MainActivity.printDB(MainActivity.java:79) at com.mirdox.myapplication.MainActivity.onCreate(MainActivity.java:29) android.app.ActivityThread.performLaunchActivityでandroid.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) でandroid.app.Activity.performCreate(Activity.java:6072) (ActivityThread.java:2315) ででandroid.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424)android.app.ActivityThread.accessの $ 900(ActivityThread.java:155)android.app.ActivityThreadの $ H.handleMessage(ActivityThread.java:1323)アンドロイド.os.Handler.dispatchMessage(Handler.java:102)の android.os.Looper.loop(Looper.java:139) android.app.ActivityThread.main(ActivityThread.java:5298) at java.lang.reflect.Method.invoke(ネイティブメソッド)
どうしたらよいですか? ありがとうございます!ここでは私mainActivity `パブリッククラスMainActivityののonCreateがここAppCompatActivity {
EditText word, meaning;
TextView wordDB, meaningDB;
DBhandler WinToDB;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
WinToDB= new DBhandler(this, null, null, 1);
printDB();
//_________input________________________
word= (EditText)findViewById(R.id.word);
meaning= (EditText)findViewById(R.id.meaning);
//_________output_______________________
wordDB= (TextView)findViewById(R.id.textView);
meaningDB= (TextView)findViewById(R.id.textView2);
**** EDIT 2を拡張します
EDITは私content_main.xmlです:I'had問題は、コードを追加しますここへ。ここにevernoteのコードへのリンクがあります。content_main.xml
ps:私はprintDb()を持っています。 mainAcitvityでonCreateで書かれています。
方、
null
のですか? – Gendarme問題は 'dbString'ではなく、あなたが設定しようとしている' TextView'がnullです。適切なIDを使用していることを確認し、テキストを設定する前にビューが適切に膨張していることを確認してください。 – NoChinDeluxe
"wordDB"を初期化しましたか? –