رمزعبور در برنامه نویسی اندروید - لطفا راهنمایی ام کنید رمزعبور را نمی شناسد

باسلام و تشکر از پاسخگویی عالیتان

من یک دیتابیسی ایجاد کردم که داخلش یک رمزعبور را ذخیره می کنم و (این رمزعبور در صفحه ای دیگر توسط کاربر وارد و ذخیره شده است) سپس در صفحه پایین کاربر همان رمز عبوری را که وارد کرده بود را وارد می کند تا وارد شود.و من تمامی دیتابیس و فراخاونی آن و.. اش را به درستی انجام داده ام ولی در دستور if ایی که در کدها مشخص کرده ام فکر اشتباهی وجود دارد چون هر چه را حتی رمزعبوری را هم که درست است وارد می کنم می نویسد (رمز عبور اشتباه است):

 

public class NumberSMS extends MainActivity{

    EditText edt_alertdialog_settingghofl_d;

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

        EditText edt = (EditText)findViewById(R.id.editText);
          final TextView t = (TextView)findViewById(R.id.textView12);
          final TextView z = (TextView)findViewById(R.id.txt_alertdialog_settingghofl);

      //  t.setVisibility(View.INVISIBLE);


        // دیتابیس
        final Database_settingghofl db = new Database_settingghofl(this);
        // دریافت رمزعبور مربوط به id=1
        int id = 1;
        final Ramz ramz = db.getRamz(id);
// نمایش رمزعبور وارد شده در یک textview
        t.setText(String.valueOf( ramz.ramz1 ));


        Button btn_setting_ghofl =(Button)findViewById(R.id.btn_setting_ghofl);
        btn_setting_ghofl.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                //  alert dialog
                final Dialog d = new Dialog(NumberSMS.this);
                d.setContentView(R.layout.aletdialog_seetingghofl);
                d.setTitle("رمزعبور");

                final Button btn_alertdialog_settingghofl = (Button) d.findViewById(R.id.btn_alertdialog_settingghofl);
                btn_alertdialog_settingghofl.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        try {
                            edt_alertdialog_settingghofl_d = (EditText) d.findViewById(R.id.edt_alertdialog_settingghofl_d);


// (فکر کنم مشکل از این خط است) کد مربوط به ورود کاربر
                            if (edt_alertdialog_settingghofl_d.getText().toString().equals(t) ) {

                                    Toast.makeText(NumberSMS.this, "سلام رئیس!وقتتون بخیر", Toast.LENGTH_SHORT).show();
                                    startActivity(new Intent(NumberSMS.this, setting_ghofl.class));

                                } else {
                                    Toast.makeText(NumberSMS.this, "رمز عبور اشتباه است!", Toast.LENGTH_SHORT).show();
                                }


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

                        // d.dismiss();
                    }
                });
                d.show();

            }
        });
}
}

ممنون می شوم راهنمایی ام کنید

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام ،شما t را یک ابجکت تکست ویو تعریف کردین :نوع یک شی است

طرفی دیگه اونطرف equal مقدار یک رشته از یک تک ویو جدید است edt_alertdialog_settingghofl_d.getText().toString() نوع یک رشته است.

خوب قاعدتا نباید جواب true باشد

به جای t ،یک متغییر جدید از نوع رشته تعریف کنید و در if از ان استفاده کنید

موفق باشید

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

باسلامی مجدد و ممنون از راهنمایی های عالیتان

رو این بخش خیلی کار کردم و لی بازهم رمز عبور را نمی شناسد.

لطفا در صورتی که امکانش وجود دارد آن قسمت از کد را برایم بنویسید.فقط این بخش از کد مانده و دیگر بخش ها مثل پایگاه داده و... کاملا تمام شده و بدون ایراد می باشند.

باتشکر

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

ممنون می شوم راهنمایی ام کنید

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام این کد را تست کنید.

بعد هر مرحله پاسورد را با این دستور پرینت کنید ببنید مطابقت دارد یا نه....

System.out.println( str );
public class NumberSMS extends MainActivity{

    EditText edt_alertdialog_settingghofl_d;

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

        EditText edt = (EditText)findViewById(R.id.editText);
          final TextView t = (TextView)findViewById(R.id.textView12);
          final TextView z = (TextView)findViewById(R.id.txt_alertdialog_settingghofl);

      //  t.setVisibility(View.INVISIBLE);


        // دیتابیس
        final Database_settingghofl db = new Database_settingghofl(this);
        // دریافت رمزعبور مربوط به id=1
        int id = 1;
        final Ramz ramz = db.getRamz(id);
// نمایش رمزعبور وارد شده در یک textview
        t.setText(String.valueOf( ramz.ramz1 ));
		String passwd=String.valueOf( ramz.ramz1 );


        Button btn_setting_ghofl =(Button)findViewById(R.id.btn_setting_ghofl);
        btn_setting_ghofl.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                //  alert dialog
                final Dialog d = new Dialog(NumberSMS.this);
                d.setContentView(R.layout.aletdialog_seetingghofl);
                d.setTitle("رمزعبور");

                final Button btn_alertdialog_settingghofl = (Button) d.findViewById(R.id.btn_alertdialog_settingghofl);
                btn_alertdialog_settingghofl.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        try {
                            edt_alertdialog_settingghofl_d = (EditText) d.findViewById(R.id.edt_alertdialog_settingghofl_d);


// (فکر کنم مشکل از این خط است) کد مربوط به ورود کاربر
                            if (edt_alertdialog_settingghofl_d.getText().toString().equals(passwd) ) {

                                    Toast.makeText(NumberSMS.this, "سلام رئیس!وقتتون بخیر", Toast.LENGTH_SHORT).show();
                                    startActivity(new Intent(NumberSMS.this, setting_ghofl.class));

                                } else {
                                    Toast.makeText(NumberSMS.this, "رمز عبور اشتباه است!", Toast.LENGTH_SHORT).show();
                                }


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

                        // d.dismiss();
                    }
                });
                d.show();

            }
        });
}
}
 
sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

باسلام مجدد

خیلی ممنون از راهنمایی تان ولی مشکل برطرف نشد بازهم می گوید رمزعبور اشتباه است.

ممنون می شوم راهنمایی ام کنید

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام داخل قسمتی که passwd را تعریف کردم ،پرینت کن ان را خط بعدش ببین چه مقداری بهت می ده

ببخشید قبلش سینکتس جاوا نوشتم اشتباه شد ،

Log.d("ADebugTag", "Value: " + Float.toString(myFloatVar));http://stackoverflow.com/questions/7718192/printing-values-of-variables-in-logcat-for-debugging-in-android

بعد داخل قبل ایف اون دوتایی که را که قرار داخل شرط ایف مقایسه کنی ،به صورت رشته تعریف کند ،passwdکه قبلا تعرف شده دو باره هر دوتاشون را پرینت کن  نتایج رو بهم بگو ، باید یاد بگیری دیباگ کنی

این سورس را چک کن مشکل داشتی بگو دوباره ولی اول اون کارهای بالا را انجام بده

public class NumberSMS extends MainActivity{

    EditText edt_alertdialog_settingghofl_d;

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

        EditText edt = (EditText)findViewById(R.id.editText);
          final TextView t = (TextView)findViewById(R.id.textView12);
          final TextView z = (TextView)findViewById(R.id.txt_alertdialog_settingghofl);

      //  t.setVisibility(View.INVISIBLE);


        // دیتابیس
        final Database_settingghofl db = new Database_settingghofl(this);
        // دریافت رمزعبور مربوط به id=1
        int id = 1;
        final Ramz ramz = db.getRamz(id);
// نمایش رمزعبور وارد شده در یک textview
        t.setText(String.valueOf( ramz.ramz1 ));
		String passwd=String.valueOf( ramz.ramz1 );
		String passdb= db.getRamz(id);


        Button btn_setting_ghofl =(Button)findViewById(R.id.btn_setting_ghofl);
        btn_setting_ghofl.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                //  alert dialog
                final Dialog d = new Dialog(NumberSMS.this);
                d.setContentView(R.layout.aletdialog_seetingghofl);
                d.setTitle("رمزعبور");

                final Button btn_alertdialog_settingghofl = (Button) d.findViewById(R.id.btn_alertdialog_settingghofl);
                btn_alertdialog_settingghofl.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        try {
                            edt_alertdialog_settingghofl_d = (EditText) d.findViewById(R.id.edt_alertdialog_settingghofl_d);


// (فکر کنم مشکل از این خط است) کد مربوط به ورود کاربر
                            if (passdb.equals(passwd) ) {

                                    Toast.makeText(NumberSMS.this, "سلام رئیس!وقتتون بخیر", Toast.LENGTH_SHORT).show();
                                    startActivity(new Intent(NumberSMS.this, setting_ghofl.class));

                                } else {
                                    Toast.makeText(NumberSMS.this, "رمز عبور اشتباه است!", Toast.LENGTH_SHORT).show();
                                }


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

                        // d.dismiss();
                    }
                });
                d.show();

            }
        });
}
}

 

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

باسلام مجدد

همه کارهایی را که گفته بودید انجام دادم ولی مشکل حل نشد.

log :

08-11 02:02:51.025    5417-5417/intelligentphone.vw2.ir.intelligentphone I/System.out﹕ 123408-11 02:02:51.045    5417-5417/intelligentphone.vw2.ir.intelligentphone W/PGA﹕ [5417] egl: eglCreateWindowSurface (0x557e27a0, 0x0, 0x796dff58, 0x775a30e0)08-11 02:02:51.045    5417-5417/intelligentphone.vw2.ir.intelligentphone W/PGA﹕ [5417] egl: eglCreateWindowSurface (0x557e27a0, 0x0, 0x796dff58, 0x775a30e0) returned08-11 02:02:51.155    5417-5417/intelligentphone.vw2.ir.intelligentphone W/PGA﹕ [5417] egl: eglDestroySurface (0x557e27a0, 0x7960c860)08-11 02:02:51.155    5417-5417/intelligentphone.vw2.ir.intelligentphone W/PGA﹕ [5417] egl: eglDestroySurface (0x557e27a0, 0x7960c860) returned08-11 02:03:20.575    5417-5417/intelligentphone.vw2.ir.intelligentphone W/PGA﹕ [5417] egl: eglCreateWindowSurface (0x557e27a0, 0x0, 0x79638888, 0x775a30e0)08-11 02:03:20.575    5417-5417/intelligentphone.vw2.ir.intelligentphone W/PGA﹕ [5417] egl: eglCreateWindowSurface (0x557e27a0, 0x0, 0x79638888, 0x775a30e0) returned

ببخشید این مطلب طولانی شد

 

 

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام،من یک سوال دارم،الان داخل دیباگ که کردی پسورد داخل هرسه حالت 5417-5417 پرینت کرده ؟

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام

1234 را برای هر سه حالت درست پرینت کرده.

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام ، داخل ایف از یک متد استفاده کن که اسپیس ها را در نظر نگیره ...

مثل این

 

 

import static org.hamcrest.text.IsEqualIgnoringWhiteSpace.equalToIgnoringWhiteSpace;

public class Main {
    public static void main(String[] args) {
        String a = "VIJAY KAKADE";
        String b = "VIJAY    KAKADE";
        if (equalToIgnoringWhiteSpace(a).matches(b)) {
            System.out.println("yes");
        } else {
            System.out.println("no");
        }

        String c = "VIJAYKAKADE";
        if (equalToIgnoringWhiteSpace(a).matches(c)) {
            System.out.println("yes");
        } else {
            System.out.println("no");
        }
    }
}

 

لینک

http://stackoverflow.com/questions/17973964/how-to-compare-two-strings-in-java-without-considering-spaces

online-support-icon