2011-09-25 8 views
0

이 코드를 사용하여 TextView에 데이터베이스의 데이터를 채우려고합니다.android의 뷰에 append 메소드를 사용하는 NullPointerException?

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
TextView view = (TextView) findViewById(R.id.textView); 

    db = (new DatabaseHelper(this)).getWritableDatabase(); 
    cursor = getCursor(); 
    cursor.moveToFirst(); 
    while (cursor.isAfterLast() == false) { 
     String text = cursor.getString(2); 
     view.append(text); 
     cursor.moveToNext(); 
    } 

그러나이 줄에서 NullPointerException이 발생합니다.

 view.append(text); 

및 이유에 대해 확실하지 않습니다. 보기가 존재합니다.

+0

는 질문 – Ronnie

답변

2

나는이 라인에 NullPointerException이 무엇입니까 그러나 :

view.append (텍스트); 및보기가 존재하는 이유에 대해 확실하지 않습니다.

view이 있고 null이 아닌 것이 확실하면 text이 null이어야합니다. 예를 들어, 다음과 같이 다시 쓸 수 있습니다. view.append(text != null ? text : "(null)");

+0

내 사과에서 로그 캣 오류를 붙여 넣습니다. 보기가 존재하지만 다른 레이아웃에 있습니다. setContentView (R.layout.main)를 수정해야했습니다. 적절한 레이아웃으로 귀하의 코드는이 문제를 파악하는 데 도움이되었으므로이를 수락 할 것입니다. 감사. –

2

필자의 예제가 어떻게 보이는지 데이터베이스의 지시 사항을 알려줘야합니다.
나는 같은 예를 수행하지만,이 차이 :

**db = SQLiteDatabase.openDatabase("/data/data/cl.kl.muestrausuario/DataBases/BDUsuarios",null,SQLiteDatabase.OPEN_READONLY);** 
Cursor c = db.query("usuario", new String[]{"regID", "nombre", "apellido"}, null, null, null, null, null); 
c.moveToFirst(); 

while (c.isAfterLast() == false) 
{ 
    view.append("\n" + c.getString(1)); 
    view.append("\r" + c.getString(2)); 

    c.moveToNext();