2

Я пытаюсь создать действительно простую страницу входа, но я получаю сообщение об ошибке при попытке запустить приложение. Я вообще этого не понимаю, так как я в основном сделал это, как будто у меня была другая пусковая установка. И я включил фильтр намерений в этот новый вид деятельности. любая помощь будет оценена, так как я должен представить ее завтра на моем экзамене. Вот код. вещь о вставке, на данный момент, и я изменю это позже.nullpointerexception на пусковой установке? android

public class LoginActivity extends Activity implements OnClickListener { 

EditText loginUsername,loginPassword; 
Button loginButton; 
SQLiteDatabase db; 

public void onCreate(Bundle savedInstanceState) 
{ 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.login); 
    loginUsername=(EditText)findViewById(R.id.loginUsername); 
    loginPassword=(EditText)findViewById(R.id.loginPassword); 
    loginButton.setOnClickListener(this); 
    db=openOrCreateDatabase("StudentDB", Context.MODE_PRIVATE, null); 
    db.execSQL("CREATE TABLE IF NOT EXISTS studentTest5(rollno VARCHAR,name VARCHAR,lastname VARCHAR,password VARCHAR,marks VARCHAR, phone VARCHAR, email VARCHAR);"); 
    db.execSQL("INSERT INTO studentTest5 VALUES('1','Lars','Hansen','1234','7','60158096','[email protected]');"); 
} 


@Override 
public void onClick(View view) { 
    // TODO Auto-generated method stub 
    if(view==loginButton) 
    { 
     if(loginUsername.getText().toString().trim().length()==0|| 
      loginPassword.getText().toString().trim().length()==0) 
     { 
      showMessage("Error", "Please enter all values"); 
      return; 
     } 
     Cursor c=db.rawQuery("SELECT * FROM studentTest5 WHERE name='"+loginUsername.getText()+"'", null); 
     if(c.moveToFirst()) 
     { 
      if(c.getString(3)==loginPassword.getText().toString()) 
      { 
       showMessage("sucess", "user exists"); 
       //loginPassword.setText(c.getString(3)); 
       } else { 
        showMessage("Error", "incorrect password"); 
       } 


     } 
     else 
     { 
      showMessage("Error", "Invalid Rollno"); 
      clearText(); 
     } 

    } 

} 
public void showMessage(String title,String message) 
    { 
     Builder builder=new Builder(this); 
     builder.setCancelable(true); 
     builder.setTitle(title); 
     builder.setMessage(message); 
     builder.show(); 
    } 
    public void clearText() 
    { 
     loginUsername.setText(""); 
     loginPassword.setText(""); 

    } 

} 

здесь является XML

<TextView 
    android:id="@+id/loginWelcome" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="65dp" 
    android:text="Welcome!" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<EditText 
    android:id="@+id/loginUsername" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/loginWelcome" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="20dp" 
    android:ems="10" 
    android:hint="Login" 
    android:inputType="textPersonName" /> 

<EditText 
    android:id="@+id/loginPassword" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/loginUsername" 
    android:layout_alignRight="@+id/loginUsername" 
    android:layout_below="@+id/loginUsername" 
    android:layout_marginTop="14dp" 
    android:ems="10" 
    android:hint="Password" 
    android:inputType="textPassword" /> 

<Button 
    android:id="@+id/loginButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/loginPassword" 
    android:layout_alignRight="@+id/loginPassword" 
    android:layout_below="@+id/loginPassword" 
    android:layout_marginTop="30dp" 
    android:text="Login" /> 

</RelativeLayout> 

и вот сообщение об ошибке,

FATAL EXCEPTION: main 
    Process: com.technotalkative.viewstubdemo, PID:  10998 
    java.lang.RuntimeException: Unable to start activity  ComponentInfo{com.technotalkative.viewstubdemo/com.technotalkative.viewstubdemo.LoginActivity}:  java.lang.NullPointerException 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
    at android.app.ActivityThread.access$800(ActivityThread.java:135) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5001) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
    at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.NullPointerException 
    at com.technotalkative.viewstubdemo.LoginActivity.onCreate(LoginActivity.java:27) 
    at android.app.Activity.performCreate(Activity.java:5231) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 
    ... 11 more 

ответ

4
loginButton.setOnClickListener(this); 

вы пропустили findViewById (инициализация объекта) для loginButton

+0

LoL - Я идиот! спасибо, манна! всегда приятно получить новый набор глаз на таких вещах! – Stender

+1

Это распространенная ошибка, и это часть кривой обучения. Вы не идиот, или, по крайней мере, * ваша ошибка * недостаточно, чтобы определить вас идиот. – Blackbelt

+1

haha ​​- спасибо! Я нахожу, что это Android-программирование сложно изучить, и я сразу же столкнулся с новой проблемой (== vs .equals), но исправил ее. Ваш ответ принят! – Stender

3

Вы забыли инициализировать loginButton переменная.

loginButton=(Button)findViewById(R.id.loginButton); 
2

Вы пропустили

loginButton=(Button)findViewById(R.id.loginButton); 
loginButton.setOnClickListener(this); 
Смежные вопросы