2017-01-17 6 views
-1

Logcat erorr setTexti cant in EditText

java.lang.NullPointerException: Versuch virtuelle Methode 'java.lang.String a.thebook.m_Model.new_book1.getnamebook()' auf null aufzurufen Objektreferenz

in Java-Klasse

package a.thebook; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.widget.EditText; 
import a.thebook.m_Model.new_book1; 
.... 


public class my_book extends AppCompatActivity { 




    private new_book1 model; 
    private EditText bookname1; 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.my_book_activity); 


     EditText bookname1 = (EditText) findViewById(R.id.editTextbookname2); 
     bookname1.setText(model.getbookname()); 
... 



} 

Werte von Firebase-Datenbank abrufen. new_book1

package a.thebook.m_Model; 


import java.util.Objects; 


public class new_book1 { 


    public String author; 
    public String bookname; 

    public new_book1() { 
    } 
    public new_book1(String bookname ,String author) { 
     this.bookname = bookname; 
     this.author = author; 

    } 
    public String getauthor(int author) { 

     return this.author; 
    } 
    public String getbookname() { 

     return this.bookname; 
    } 

} 
+0

Post Sie Protokoll Katze – Piyush

+5

wo ist die Initialisierung von 'Modell'? –

+0

Ihr Modell hat einen leeren Text, Sie haben keinen Buchnamen gesetzt und verwenden getbookname direkt – Redman

Antwort

3

Sie haben Ihre model Variable nicht initialisiert. Daher erhalten Sie einen null object Fehler.

Initialisiere Ihre new_book1 Variable und Ihren Code

this helps funktioniert :)

0

Verwendung:

private new_book1 model = new new_book1("myBook", "myself"); 
+2

erstellt, auch wenn dies NPE ergeben könnte, sollte er initialisieren wie 'private new_book1 model = new new_book1 (" bookName "," author ");' – Redman

1
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.my_book_activity); 
    model = new new_book1("abc","xyz"); 

    EditText bookname1 = (EditText) findViewById(R.id.editTextbookname2); 
    bookname1.setText(model.getbookname()); 

} 

Dies wird Ihnen helfen.

+0

und vergessen Sie nicht, die Antwort zu wählen :) –