0

this my main activity .. all i want to happen is when user click on login user will be directed to the activity user belong.. if user name is equal to admin user will directed to admin module, and if user is not equal to admin user will direct to client module.. but everytime i click on login after i inputted the username and password fiel.. my emulator always stop..

 public class MainActivity extends ActionBarActivity {

Button btnLogin;
Button btnRegister;
EditText pass,un;
User userdb;

public String user_name;
public String pass_word;
private DBHelper dbHelper;

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


    un = (EditText) findViewById(R.id.eTlogUser);
    pass = (EditText) findViewById(R.id.eTlogPass);



    btnLogin = (Button)findViewById(R.id.btnlogin);
    btnRegister = (Button) findViewById(R.id.btnregister);

    btnLogin.setOnClickListener(new View.OnClickListener(){

         /*  @Override
          public void onClick(View v) {
                  startActivity(new Intent(MainActivity.this,AdminModule.class));
                 }
              }); */


        @Override
        public void onClick(View v) {
            if(v.getId() == R.id.btnlogin) {
                // dbHelper.onOpen(User.TABLE);
                Cursor cursor = dbHelper.getReadableDatabase().rawQuery("SELECT * FROM " + User.TABLE, null);
                cursor.moveToFirst();
                {
                    System.out.println("compiler was here!");

                    if (cursor.getCount() == 0) {
                        Toast.makeText(getApplicationContext(), "The table " + User.TABLE + " is empty", Toast.LENGTH_LONG).show();
                    } else if (cursor.getCount() >= 1) {

                        do {
                            if ((cursor.getString(9) == un.toString()) && (cursor.getString(10) == pass.toString())) {
                                Toast.makeText(getApplicationContext(), cursor.getString(1), Toast.LENGTH_LONG).show();
                                // Intent goToNextActivity = new Intent(getApplicationContext(), AdminModule.class);
                                if (cursor.getString(1) == "admin") {
                                    startActivity(new Intent(MainActivity.this, AdminModule.class));
                                } else {
                                    startActivity(new Intent(MainActivity.this, ClientModule.class));
                                }
                                // startActivity(goToNextActivity);

                                //startActivity(new Intent(MainActivity.this, AdminModule.class));
                            } else {
                                Toast.makeText(getApplicationContext(), "Wrong username/password", Toast.LENGTH_LONG).show();
                            }
                        } while (cursor.moveToNext());

                    }
                }
            }


        }

    });

    btnRegister.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {


            startActivity(new Intent(MainActivity.this,UserDetail.class));

         }

          });


}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
 }

not this my error in the logcat ...

01-29 00:28:08.148      887-887/com.ampo.mobileampo.ampo E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.ampo.mobileampo.ampo, PID: 887
    java.lang.NullPointerException
            at com.ampo.mobileampo.ampo.MainActivity$1.onClick(MainActivity.java:53)
            at android.view.View.performClick(View.java:4438)
            at android.view.View$PerformClick.run(View.java:18422)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            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:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)

and this is my code for crud operation in my user

 public class UserDetail extends Activity implements View.OnClickListener {

Button ubtnsave, ubtnclose, ubtndelete;
EditText etutype, etusex,etusername;
EditText etucompany, etumail, etucont, etuadd;
EditText etloguserName, etlogpass, etlogconfirm;
private String pasword,pasword2;
private int _User_Id=0;



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

    ubtnsave = (Button) findViewById(R.id.ubtnsave);
    ubtnclose = (Button) findViewById(R.id.ubtnclose);
    ubtndelete = (Button) findViewById(R.id.ubtndelete);

    etusername= (EditText) findViewById(R.id.eTuname);
    etutype = (EditText) findViewById(R.id.eTutype);
    etusex = (EditText) findViewById(R.id.eTsex);
    etucompany = (EditText) findViewById(R.id.eTucompany);
    etumail = (EditText) findViewById(R.id.eTuemail);
    etucont = (EditText) findViewById(R.id.eTucont);
    etuadd = (EditText) findViewById(R.id.eTuadd);
    etloguserName = (EditText) findViewById(R.id.eTloguserName);
    etlogpass  = (EditText) findViewById(R.id.eTlogPass);
    etlogconfirm  = (EditText) findViewById(R.id.eTconfirmPass);

    _User_Id=0;
    Intent intentu = getIntent();
    _User_Id = intentu.getIntExtra("user_Id", 0);
    UserCrud uCrud = new UserCrud(this);
    User user = new User();
    user = uCrud.getUserById(_User_Id);

    etusername.setText(user.username);
    etutype.setText(user.usertype);
    etusex.setText(user.sex);
    etucompany.setText(user.usercompany);
    etumail.setText(user.usermail);
    etucont.setText(String.valueOf(user.usercontact));
    etuadd.setText(user.useradd);
    etloguserName.setText(user.loguser);
    etlogpass.setText(user.logpass);
    etlogconfirm.setText(user.logconfirmm);

}
        // stopped here 3:15 am

@Override
public void onClick(View v) {
    if (v == findViewById(R.id.ubtnsave)){
        Toast.makeText(this, pasword, Toast.LENGTH_LONG).show();
        Toast.makeText(this, pasword2, Toast.LENGTH_LONG).show();
        UserCrud uCrud = new UserCrud(this);
        User user = new User();
        user.privl = "Client";
        user.username=etusername.getText().toString();
        user.usertype=etutype.getText().toString();
        user.sex=etusex.getText().toString();
        user.usercompany=etucompany.getText().toString();
        user.usermail=etumail.getText().toString();
        user.usercontact=etucont.getText().toString();
        user.useradd=etuadd.getText().toString();
        user.loguser=etloguserName.getText().toString();
        user.logpass=etlogpass.getText().toString();
        user.logconfirmm=etlogconfirm.getText().toString();
        pasword  = etlogpass.getText().toString();
        pasword2 = etlogconfirm.getText().toString();

        if (_User_Id==0){
            if(pasword.equals(pasword2))
            {    _User_Id = uCrud.insert(user);
                Toast.makeText(this, "User Saved", Toast.LENGTH_SHORT).show();
            }
            else {
                Toast.makeText(this, "Password doesn't Match" , Toast.LENGTH_LONG).show();
            }
        }else{
            uCrud.update(user);
            Toast.makeText(this, "User Updated", Toast.LENGTH_SHORT).show();
        }

    }else if (v == findViewById(R.id.ubtndelete)){
        UserCrud uCrud = new UserCrud(this);
        uCrud.delete(_User_Id);

        Toast.makeText(this, "User Deleted", Toast.LENGTH_SHORT).show();
        finish();
    }else if (v == findViewById(R.id.ubtnclose)){
        finish();
    }

}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_user_detail, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

 }

i don't have any idea why my emulator always stop after i click the button login?

Kushal Sharma
  • 5,978
  • 5
  • 25
  • 41
Jeraline
  • 39
  • 9

3 Answers3

0

in your main activity you are not initilized the following dbhelper class object

private DBHelper dbHelper;

initilize the above Object Like:

 in OnCreate()

 dbHelper=new DBHelper(this);
Rathan Kumar
  • 2,567
  • 2
  • 17
  • 24
0

Initialize you dbHelper object in onCreate method of your activity

dbHelper=new DBHelper(MainActivity.this);

SANJAY GUPTA
  • 1,564
  • 13
  • 21
0

Initilize dbHelper

dbHelper = new DBHelper(MainActivity.this);

also to add here make sure the string comparisons is done in a correct way..

How do I compare strings in Java?

The above link will help you for the same.

Community
  • 1
  • 1
Kushal Sharma
  • 5,978
  • 5
  • 25
  • 41