Android应用程序登录和登录问题

罗珊彼得

我正在开发一个android应用程序,其中有一个sigin和signup选项。当新用户首次进入该应用程序时,他需要进行注册。.当按下sigin选项时,他将被定向到帐户创建页面。在该页面中,他需要提供用户名,密码和手机号码。所有这三个值都存储在sqlite(应用程序内存)中,并创建密码并将其发送到用户提供的手机号码。接下来的页面是注册页面,在该页面中,将检查用户的用户名和密码以及他收到的密码。我这样做是为了验证手机号码。所以我的问题是,一旦用户创建了帐户并返回登录选项,然后输入用户名和密码..他正指向应用程序的第一页... 因为完成帐户创建过程后,他的详细信息会保存在应用程序数据库中以进行验证。所以用户不需要验证密码..那么有什么方法可以使注册按钮视图仅在注册过程之后..或类似的东西...我在这里发布siginactivity,signupactivity和register activity ..请检查它,如果发现任何错误请帮助我...

注册活动

public class SignUpActivity extends Activity

{

    EditText editTextUserName,editTextPassword,editTextConfirmPassword, editMobileNumber;
    Button btnCreateAccount;



    // Progress Dialog
        private ProgressDialog pDialog;

        JSONParser jsonParser = new JSONParser();




    Random r = new Random();
    int number =r.nextInt(9999 - 1000) + 1000;



    LoginDataBaseAdapter loginDataBaseAdapter;


private static String url_create_data = "http://iascpl.com/app/create_data1.php";

    // JSON Node names
    private static final String TAG_SUCCESS = "success";



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



        // get Instance  of Database Adapter
                loginDataBaseAdapter=new LoginDataBaseAdapter(this);
                loginDataBaseAdapter=loginDataBaseAdapter.open();

                // Get References of Views


                editTextUserName=(EditText)findViewById(R.id.editTextUserName);
                editTextPassword=(EditText)findViewById(R.id.editTextPassword);
                editTextConfirmPassword=(EditText)findViewById(R.id.editTextConfirmPassword);
                editMobileNumber = (EditText)findViewById(R.id.mobileNumber);




                btnCreateAccount=(Button)findViewById(R.id.buttonCreateAccount);

                btnCreateAccount.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub

                        String name=editTextUserName.getText().toString();
                        String password=editTextPassword.getText().toString();
                        String confirmPassword=editTextConfirmPassword.getText().toString();

                        String phoneNo = editMobileNumber.getText().toString();
                        String sms = Integer.toString(number);


                        //Intent intent = new Intent(SignUpActivity.this, RegisterActivity.class);

                        //intent.putExtra("number", sms + "");
                        //startActivity(intent);



                        //new CreateNewProduct().execute();


                        StringTokenizer st=new StringTokenizer(phoneNo,",");
                        while (st.hasMoreElements())

                        {

                            String tempMobileNumber = (String)st.nextElement();
                            if(tempMobileNumber.length()>0 && sms.trim().length()>0) 
                            {
                                sendSMS(tempMobileNumber, sms);

                            }


                            else 

                            {

                                Toast.makeText(getBaseContext(), 
                                        "Please enter both phone number and message.", 
                                        Toast.LENGTH_SHORT).show();
                            }





                        }








                        // check if any of the fields are vacant
                        if(name.equals("")||password.equals("")||confirmPassword.equals(""))
                        {
                                Toast.makeText(getApplicationContext(), "Field Vaccant", Toast.LENGTH_LONG).show();
                                return;
                        }
                        // check if both password matches
                        if(!password.equals(confirmPassword))
                        {
                            Toast.makeText(getApplicationContext(), "Password does not match", Toast.LENGTH_LONG).show();
                            return;
                        }
                        else
                        {
                            // Save the Data in Database
                           loginDataBaseAdapter.insertEntry(name, password);
                          Toast.makeText(getApplicationContext(), "Passcode is sent to the mobile number you provided. ", Toast.LENGTH_LONG).show();     


                            new CreateNewProduct().execute();

                           // Intent intent = new Intent(SignUpActivity.this, RegisterActivity.class);

                          //  intent.putExtra("number", sms + "");
                           // startActivity(intent);



                        }







                    }
                });

    }









    private void sendSMS(String phoneNumber, String message)
    {
        String SENT = "SMS_SENT";
        String DELIVERED = "SMS_DELIVERED";

        PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
            new Intent(SENT), 0);

        PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
            new Intent(DELIVERED), 0);

      //---when the SMS has been sent---
        registerReceiver(new BroadcastReceiver(){
            @Override
            public void onReceive(Context arg0, Intent arg1) {
                switch (getResultCode())
                {
                    case Activity.RESULT_OK:
                        Toast.makeText(getBaseContext(), "SMS sent", 
                                Toast.LENGTH_SHORT).show();
                        break;
                    case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                        Toast.makeText(getBaseContext(), "Generic failure", 
                                Toast.LENGTH_SHORT).show();
                        break;
                    case SmsManager.RESULT_ERROR_NO_SERVICE:
                        Toast.makeText(getBaseContext(), "No service", 
                                Toast.LENGTH_SHORT).show();
                        break;
                    case SmsManager.RESULT_ERROR_NULL_PDU:
                        Toast.makeText(getBaseContext(), "Null PDU", 
                                Toast.LENGTH_SHORT).show();
                        break;
                    case SmsManager.RESULT_ERROR_RADIO_OFF:
                        Toast.makeText(getBaseContext(), "Radio off", 
                                Toast.LENGTH_SHORT).show();
                        break;
                }
            }
        },new IntentFilter(SENT));

        //---when the SMS has been delivered---
        registerReceiver(new BroadcastReceiver(){
            @Override
            public void onReceive(Context arg0, Intent arg1) {
                switch (getResultCode())
                {
                    case Activity.RESULT_OK:
                        Toast.makeText(getBaseContext(), "SMS delivered", 
                                Toast.LENGTH_SHORT).show();
                        break;
                    case Activity.RESULT_CANCELED:
                        Toast.makeText(getBaseContext(), "SMS not delivered", 
                                Toast.LENGTH_SHORT).show();
                        break;                        
                }
            }
        }, new IntentFilter(DELIVERED));        

        SmsManager sms = SmsManager.getDefault();
        sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);       


    }













    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();

        loginDataBaseAdapter.close();
    }



    /**
     * Background Async Task to Create new product
     * */
    class CreateNewProduct extends AsyncTask<String, String, String> {

        /**
         * Before starting background thread Show Progress Dialog
         * */
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(SignUpActivity.this);
            pDialog.setMessage("Creating a new account..");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
        }

        /**
         * Creating product
         * */
        protected String doInBackground(String... args) {





            String name = editTextUserName.getText().toString();
            String password = editTextPassword.getText().toString();
            String mobile = editMobileNumber.getText().toString();
            String sms = Integer.toString(number);

            // Building Parameters
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("name", name));
            params.add(new BasicNameValuePair("password", password));
            params.add(new BasicNameValuePair("mobile", mobile));

            // getting JSON Object
            // Note that create product url accepts POST method
            JSONObject json = jsonParser.makeHttpRequest(url_create_data,
                    "POST", params);

            // check log cat fro response
            Log.d("Create Response", json.toString());

            // check for success tag
            try {
                int success = json.getInt(TAG_SUCCESS);

                if (success == 1) {
                    // successfully created product




                    Intent i = new Intent(SignUpActivity.this, RegisterActivity.class);

                    i.putExtra("number", sms + "");
                    startActivity(i);

                    //closing this screen
                    //finish();
                } else {
                    // failed to create product
                    return "false";



                }



            } catch (JSONException e) {
                e.printStackTrace();
            }

            return null;
        }

        /**
         * After completing background task Dismiss the progress dialog
         * **/
        /*protected void onPostExecute(String file_url) {
            // dismiss the dialog once done
            pDialog.dismiss();
        }*/


        protected void onPostExecute(String result)

        {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
                        if (result == "false")
            Toast.makeText(SignUpActivity.this, "User Name already exists. Please choose another user name ", Toast.LENGTH_LONG).show();
                        pDialog.dismiss();

        }


    }





}

注册活动

public class RegisterActivity extends Activity {


    LoginDataBaseAdapter loginDataBaseAdapter;
    Button btnReg;


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


        loginDataBaseAdapter=new LoginDataBaseAdapter(this);
        loginDataBaseAdapter=loginDataBaseAdapter.open();



        btnReg = (Button) findViewById (R.id.buttonRegister);

        final  EditText editTextUserName=(EditText)findViewById(R.id.editTextUserNameToLogin);
        final  EditText editTextPassword=(EditText)findViewById(R.id.editTextPasswordToLogin);
        final  EditText editTextMobileNumber = (EditText)findViewById(R.id.editText1);



        btnReg.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub


                String userName=editTextUserName.getText().toString();
                String password=editTextPassword.getText().toString();
                String mobileNumber = editTextMobileNumber.getText().toString();

                // fetch the Password form database for respective user name
                String storedPassword=loginDataBaseAdapter.getSinlgeEntry(userName);



                String sd = getIntent().getStringExtra("number"); 
                String name = editTextUserName.getText().toString();



                // check if the Stored password matches with  Password entered by user
                if(password.equals(storedPassword) && (mobileNumber.equals(sd))) 
                {
                    Toast.makeText(RegisterActivity.this, "Congrats: Registration Successfull", Toast.LENGTH_LONG).show();


                    Intent in = new Intent(RegisterActivity.this,HomePageActivity.class);
                    startActivity(in);



                }
                else
                {
                    Toast.makeText(RegisterActivity.this, "User Name, Passcode or Password does not match", Toast.LENGTH_LONG).show();
                }


            }
        });


    }







@Override
protected void onDestroy() 
     {
    super.onDestroy();
    // Close The Database
    loginDataBaseAdapter.close();

      }
    }

登录活动

public class SignInActivity extends Activity 


{
    /*LoginDataBaseAdapter loginDataBaseAdapter;*/
    Button btnsignin;
    EditText username,userpassword;

    TextView txtName;


    // Progress Dialog
    private ProgressDialog pDialog;

    // JSON parser class
    JSONParser jsonParser = new JSONParser();



    // single product url
    private static String url_get_name = "http://iascpl.com/app/get_name_details.php";


    // JSON Node names
    private static final String TAG_SUCCESS = "success";
    private static final String TAG_PRODUCT = "product";
    private static final String TAG_PASSWORD = "password";


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


        /*loginDataBaseAdapter=new LoginDataBaseAdapter(this);
        loginDataBaseAdapter=loginDataBaseAdapter.open();*/

        btnsignin = (Button) findViewById ( R.id.button401);
        username=(EditText)findViewById(R.id.editText401);
        userpassword=(EditText)findViewById(R.id.editText402);


        btnsignin.setOnClickListener(new View.OnClickListener() 

        {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub




                new GetProductDetails().execute();

               /* String storedPassword=loginDataBaseAdapter.getSinlgeEntry(userName);*/


                 // check if the Stored password matches with  Password entered by user
                /*if(password.equals(storedPassword)) 
                {
                    Toast.makeText(SignInActivity.this, "Login Successfull", Toast.LENGTH_LONG).show();


                    Intent i = new Intent(SignInActivity.this,HomePageActivity.class);
                    startActivity(i);




                }
                else
                {
                    Toast.makeText(SignInActivity.this, "User Name or Password does not match", Toast.LENGTH_LONG).show();
                }*/



            }
        });
    }



        class GetProductDetails extends AsyncTask<String, String, String> {

            /**
             * Before starting background thread Show Progress Dialog
             * */
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                pDialog = new ProgressDialog(SignInActivity.this);
                pDialog.setMessage("Loading the result... Please wait...");
                pDialog.setIndeterminate(false);
                pDialog.setCancelable(true);
                pDialog.show();
            }

            /**
             * Getting product details in background thread
             * */
            protected String doInBackground(String... args) 


            {
                String pid=username.getText().toString();











                            // Building Parameters
                            List<NameValuePair> params = new ArrayList<NameValuePair>();
                            params.add(new BasicNameValuePair("pid", pid));





                            // getting product details by making HTTP request
                            // Note that product details url will use GET request
                            JSONObject json = jsonParser.makeHttpRequest(
                                    url_get_name, "GET", params);



                            // check your log for json response
                            Log.d("Single Product Details", json.toString());


                            // json success tag

                            try {
                            int success = json.getInt(TAG_SUCCESS);

                            if (success == 1) {
                                // successfully received product details
                                JSONArray productObj = json
                                        .getJSONArray(TAG_PRODUCT); // JSON Array

                                // get first product object from JSON Array
                                final JSONObject product = productObj.getJSONObject(0);

                                txtName = (TextView) findViewById(R.id.textView1);

                                // product with this pid found
                                // Edit Text
                                runOnUiThread(new Runnable() {  
                                    @Override
                                    public void run() 
                                    {
                                        // TODO Auto-generated method stub
                                        try {
                                            txtName.setText(product.getString(TAG_PASSWORD));

                                        } catch (JSONException e) {
                                            // TODO Auto-generated catch block
                                            e.printStackTrace();
                                        }
                                    }
                                });


                            }else{
                                // product with pid not found

                            }
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }




                    return null;
                }


/*
@Override
protected void onDestroy() 
     {
    super.onDestroy();
    // Close The Database
    loginDataBaseAdapter.close();
      }*/


                            /**
                             * After completing background task Dismiss the progress dialog
                             * **/
                            protected void onPostExecute(String result) 
                            {
                                // dismiss the dialog once got all details
                                /*super.onPostExecute(result);
                                if (result == "false")
                                Toast.makeText(SignInActivity.this, "User Name already exists. Please choose another user name ", Toast.LENGTH_LONG).show();*/
                                pDialog.dismiss();
                            }



            }
    }
乔切维德

我了解您的问题...您将注册详细信息保存在sqlite中,因此当用户输入用户名和密码时,它将保存在sqlite中,下一步是注册过程,用户必须输入密码。保存在sqlite用户中的用户可以按返回按钮并返回并使用用户名和密码登录,避免注册过程...在这里您可以执行以下操作。使用共享首选项

例如:在成功注册后的注册页面中,给出值l。

 SharedPreferences set = getSharedPreferences(PREFS_NAME, 0); 
                        SharedPreferences.Editor ed = set.edit(); 
                        ed.putString("l", "l"); 
                        ed.commit();

并在您的主页中检查值是否为l(如果值仅为l),然后使您的登录按钮可见。您可以使用类似的方法使按钮不可见。

btn3.setVisibility(View.INVISIBLE);
                 btn4.setVisibility(View.INVISIBLE);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Cakephp应用程序的Facebook登录问题

来自分类Dev

Android应用程序登录和注册错误

来自分类Dev

android:google 登录 api 和 facebook 登录 api 不能在应用程序 apk 中使用

来自分类Dev

SQL Lite Android应用程序登录

来自分类Dev

Facebook登录-Android应用程序

来自分类Dev

人脸识别登录android应用程序

来自分类Dev

Android 应用程序登录 Cordova

来自分类Dev

即使代码正确,Android Firebase 登录和注册应用程序也会崩溃。有什么办法解决这个问题

来自分类Dev

Web应用程序登录身份验证和安全性问题

来自分类Dev

在向Android应用程序添加新的Google登录后,防止混淆问题

来自分类Dev

在Android应用程序中使用Facebook登录时出现问题

来自分类Dev

在Android应用程序中使用Facebook帐户登录时出现的问题

来自分类Dev

iOS应用程序登录视图控制器问题

来自分类Dev

登录Windows应用程序

来自分类Dev

JSP应用程序登录

来自分类Dev

用Coldfusion和Java开发登录应用程序

来自分类Dev

ANR导致登录和注册使应用程序崩溃

来自分类Dev

Android应用程序忘记了恢复登录

来自分类Dev

Android应用程序因Facebook登录而崩溃

来自分类Dev

如何从Android应用程序向Mikrotik发送登录凭据

来自分类Dev

Android应用程序在Facebook登录时崩溃

来自分类Dev

在Android中获取系统登录事件的应用程序

来自分类Dev

如何使用Android Studio登录应用程序?

来自分类Dev

滑动初始屏幕以进入登录屏幕(Android应用程序)

来自分类Dev

Android应用程序因Facebook登录而崩溃

来自分类Dev

从android应用程序登录网站以检索和解析信息

来自分类Dev

刚发布的Android应用程序,Google Play未登录

来自分类Dev

不幸的是,我的 android 登录应用程序停止了

来自分类Dev

使用ADAL在Web应用程序和本机应用程序之间进行单点登录

Related 相关文章

  1. 1

    Cakephp应用程序的Facebook登录问题

  2. 2

    Android应用程序登录和注册错误

  3. 3

    android:google 登录 api 和 facebook 登录 api 不能在应用程序 apk 中使用

  4. 4

    SQL Lite Android应用程序登录

  5. 5

    Facebook登录-Android应用程序

  6. 6

    人脸识别登录android应用程序

  7. 7

    Android 应用程序登录 Cordova

  8. 8

    即使代码正确,Android Firebase 登录和注册应用程序也会崩溃。有什么办法解决这个问题

  9. 9

    Web应用程序登录身份验证和安全性问题

  10. 10

    在向Android应用程序添加新的Google登录后,防止混淆问题

  11. 11

    在Android应用程序中使用Facebook登录时出现问题

  12. 12

    在Android应用程序中使用Facebook帐户登录时出现的问题

  13. 13

    iOS应用程序登录视图控制器问题

  14. 14

    登录Windows应用程序

  15. 15

    JSP应用程序登录

  16. 16

    用Coldfusion和Java开发登录应用程序

  17. 17

    ANR导致登录和注册使应用程序崩溃

  18. 18

    Android应用程序忘记了恢复登录

  19. 19

    Android应用程序因Facebook登录而崩溃

  20. 20

    如何从Android应用程序向Mikrotik发送登录凭据

  21. 21

    Android应用程序在Facebook登录时崩溃

  22. 22

    在Android中获取系统登录事件的应用程序

  23. 23

    如何使用Android Studio登录应用程序?

  24. 24

    滑动初始屏幕以进入登录屏幕(Android应用程序)

  25. 25

    Android应用程序因Facebook登录而崩溃

  26. 26

    从android应用程序登录网站以检索和解析信息

  27. 27

    刚发布的Android应用程序,Google Play未登录

  28. 28

    不幸的是,我的 android 登录应用程序停止了

  29. 29

    使用ADAL在Web应用程序和本机应用程序之间进行单点登录

热门标签

归档