ApA

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

ApA ۱۳۹۵/۰۵/۰۷ 49 برنامه‌نویسی اندروید

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


من یک دیتابیسی ایجاد کردم که داخلش یک رمزعبور را ذخیره می کنم و (این رمزعبور در صفحه ای دیگر توسط کاربر وارد و ذخیره شده است) سپس در صفحه پایین کاربر همان رمز عبوری را که وارد کرده بود را وارد می کند تا وارد شود.و من تمامی دیتابیس و فراخاونی آن و.. اش را به درستی انجام داده ام ولی در دستور 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();

}
});
}
}

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

پاسخ‌ها به این تاپیک
stack programer
stack programer
۱۳۹۵/۰۵/۲۱

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

ApA
ApA
۱۳۹۵/۰۵/۲۱

سلام


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

در پاسخ به

stack programer
stack programer
۱۳۹۵/۰۵/۲۱

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


مثل این


 


 


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

در پاسخ به

stack programer
stack programer
۱۳۹۵/۰۵/۲۰

سلام داخل قسمتی که 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();

}
});
}
}

 

ApA
ApA
۱۳۹۵/۰۵/۲۱

باسلام مجدد


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


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


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


 


 

در پاسخ به

stack programer
stack programer
۱۳۹۵/۰۵/۲۰

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


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


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();

}
});
}
}

 
ApA
ApA
۱۳۹۵/۰۵/۲۰

باسلام مجدد


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


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

در پاسخ به

ApA
ApA
۱۳۹۵/۰۵/۲۰

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

ApA
ApA
۱۳۹۵/۰۵/۱۷

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


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


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


باتشکر

stack programer
stack programer
۱۳۹۵/۰۵/۰۸

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


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


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


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


موفق باشید