2013-09-24 5 views
-3

Я новичок, и любая помощь будет оценена В настоящее время либо она заполнена, либо я получаю тост, говоря, что есть нулевой указатель. В выражении if else он всегда будет переходить к части else. Таким образом, если, кажется, не tihnk пусто в то время как это то, что я получаю в тосте (Created в улове)EditText дает NullPointerException на getText

package com.example.domoticaapp; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.Window; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class CreateProfile extends Activity implements OnClickListener 
{ 
//Declare Variables 
DBAdapter myDb; 
EditText ipInput, nameInput; 
Button save; 


@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 

    super.onCreate(savedInstanceState); 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.create_profile); 

    ipInput = (EditText) findViewById(R.id.ipInput); 
    nameInput = (EditText) findViewById(R.id.nameInput); 

    save = (Button) findViewById(R.id.save); 

    save.setOnClickListener(this); 

} 



private void saveProfile() 
{ 
    String IP = ipInput.getText().toString(); 
    String name = nameInput.getText().toString(); 

    if(IP == null || name == null || IP == "" || name == "") 
    { 
     Toast.makeText(this, "Name and IP can't be empty!", Toast.LENGTH_SHORT).show(); 
    } 
    else 
    { 

     try 
     { 
      myDb.insertRow(name, IP); 
      //Intent i = new Intent("com.example.domoticaapp.SQLView"); 
      //startActivity(i); 
     } 
     catch(Exception e) 
     { 

      Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show(); 
     } 
    } 

} 

@Override 
public void onClick(View v) 
{ 
    switch(v.getId()) 
    { 
     case R.id.save: 
       saveProfile(); 
      break; 
    } 
} 

} 
+3

-1 Мне действительно не нравится вопрос вроде этого («найти NPE в моем собственном коде») 'myDb' null ... почему? где вы назначили 'myDb'? – Selvin

+0

опубликуйте свой вывод logcat – Shruti

+0

Проверьте с вашим именем макета в setContentView(). У этого макета есть те компоненты EditText? – Aswin

ответ

0

Попробуйте это.

if(!IP.equals("") && !name.equals("")) 
{ 
    /** Your Code **/ 
} 
else 
{ 
    Toast.makeText(this, "Name and IP can't be empty!", Toast.LENGTH_SHORT).show(); 
} 
-2
DBAdapter myDb; 

MyDB не intialised. Вы только что объявили, что

+2

Спасибо, Cpt , Очевидные! Редактировать: делает ли тот, кто дает мне +1 для этого комментария, знает, что это ирония? – Selvin

0

попробовать это

if(TextUtils.isEmpty(name) &&TextUtils.isEmpty(IP)){ 
    Toast.... 
}else{ 
    ... 
} 
+0

Это действительно сработало Не могли бы вы объяснить, в чем разница? Так как мой чек должен делать то же самое? Или это что-то не хватает? – PrivateerGerrit

Смежные вопросы