PDA

View Full Version : custom dialog که باز نمی شود



ramjm906563
جمعه 11 مرداد 1398, 17:04 عصر
با سلام
من یک کدی نوشتم که می بایست بعد از انتخاب هر کدام از radio button ها صفحه custom dialog باز شود ولی نمی شود و خطا هم نمی دهد لطفا کمکم کنید.
این هم کد java صفحه مورد نظر فقط import ها را پاک کردم :
کد java :
package com.example.barname_n_rooze;


Context context=this;


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


txt_tarikhe_yadavari = (TextView) findViewById(R.id.txt_tarikhe_yadavari);
pdp3 = (PersianDatePicker) findViewById(R.id.pdp3);
txt_dar_saaate = (TextView) findViewById(R.id.txt_dar_saaate);
radiobutton1_3 = (RadioButton) findViewById(R.id.radiobutton1_3);
radiobutton2_3 = (RadioButton) findViewById(R.id.radiobutton2_3);
radiobutton3_3 = (RadioButton) findViewById(R.id.radiobutton3_3);
radiobutton4_3 = (RadioButton) findViewById(R.id.radiobutton4_3);
//timepicker1_3 = (TimePicker) findViewById(R.id.timepicker1_3);
txt_matne_yadavari = (TextView) findViewById(R.id.txt_matne_yadavari);
edt_matne_yadavari = (EditText) findViewById(R.id.edt_matne_yadavari);
btn_next_step3 = (Button) findViewById(R.id.btn_next_step3);




PersianCalendar p = pdp3.getDisplayPersianDate();
String s1_3 = edt_matne_yadavari.getText().toString();




if(radiobutton1_3.isChecked() ){


customDialog();


}else if(radiobutton2_3.isChecked()){


customDialog();


}else if(radiobutton3_3.isChecked() ){


customDialog();


}else if( radiobutton4_3.isChecked()){


customDialog();


}
}


private void customDialog () {


final EditText hour, minute ,second;


LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.timepickerdialog1, null);


AlertDialog.Builder alertDialogBuilder1 = new AlertDialog.Builder(this);
alertDialogBuilder1.setView(view);
//alertDialogBuilder1.setTitle("سلام");
//alertDialogBuilder1.setMessage("زمان مورد نظر خود را انتخاب کنید");
alertDialogBuilder1.setCancelable(true);
alertDialogBuilder1.setPositiveButton("ذخیره", null);
alertDialogBuilder1.setNegativeButton("لغو", null);




hour = (EditText)view.findViewById(R.id.hour);
minute=(EditText)view.findViewById(R.id.minute);
second=(EditText)view.findViewById(R.id.second);


final AlertDialog alertDialog = alertDialogBuilder1.create();
alertDialog.show();


alertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
Button btnPositive=alertDialog.getButton(AlertDialog.BUTT ON_POSITIVE);
btnPositive.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
alertDialog.dismiss();
}
});
Button btnNegative=alertDialog.getButton(AlertDialog.BUTT ON_NEGATIVE);
btnNegative.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {


alertDialog.dismiss();
}
});
}
});
}
}




دوستان موقع ساخت صفحه custom dialog باید مقدار هر کدام از موارد زیر چی باشه شاید اینجا اشتباه کردم خودم یادم نیست فقط
اولی رو(Resource type رو)xml زدم :
Resource type ,Root element ,Directory name
:گریه::گریه::گریه::گریه::گریه: :گریه::گریه:

farhad_shiri_ex
دوشنبه 14 مرداد 1398, 13:30 عصر
ببنید این تغییر کار میکنه!





Context context=this;
EditText hour, minute ,second;




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


txt_tarikhe_yadavari = (TextView) findViewById(R.id.txt_tarikhe_yadavari);
pdp3 = (PersianDatePicker) findViewById(R.id.pdp3);
txt_dar_saaate = (TextView) findViewById(R.id.txt_dar_saaate);
radiobutton1_3 = (RadioButton) findViewById(R.id.radiobutton1_3);
radiobutton2_3 = (RadioButton) findViewById(R.id.radiobutton2_3);
radiobutton3_3 = (RadioButton) findViewById(R.id.radiobutton3_3);
radiobutton4_3 = (RadioButton) findViewById(R.id.radiobutton4_3);
//timepicker1_3 = (TimePicker) findViewById(R.id.timepicker1_3);
txt_matne_yadavari = (TextView) findViewById(R.id.txt_matne_yadavari);
edt_matne_yadavari = (EditText) findViewById(R.id.edt_matne_yadavari);
btn_next_step3 = (Button) findViewById(R.id.btn_next_step3);


PersianCalendar p = pdp3.getDisplayPersianDate();
String s1_3 = edt_matne_yadavari.getText().toString();
AlertDialog aDialog;
if(radiobutton1_3.isChecked() || radiobutton2_3.isChecked() || radiobutton3_3.isChecked() || radiobutton4_3.isChecked()){
aDialog =customDialog();
if(aDialog != null)
aDialog.show();
}

}




private AlertDialog customDialog () {




LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.timepickerdialog1, null);


hour = (EditText)view.findViewById(R.id.hour);
minute=(EditText)view.findViewById(R.id.minute);
second=(EditText)view.findViewById(R.id.second);

AlertDialog.Builder alertDialogBuilder1 = new AlertDialog.Builder(this);
alertDialogBuilder1.setView(view)
.setCancelable(true)
.setPositiveButton("ذخیره", ,new DialogInterface.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
alertDialog.dismiss();
}
});
.setNegativeButton("لغو", new DialogInterface.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
alertDialog.dismiss();
}
});
return alertDialogBuilder1.create();

}

ramjm906563
سه شنبه 15 مرداد 1398, 00:15 صبح
سلام
از پاسخگویی شما خیلی ممنونم
کد در دو جا خطا داره یکی alertDialog و setOnClickListener که متن خطای هر کدوم اینه :
cannot resolve symbole "alertDialog "
cannot resolve symbole "setOnClickListener "
در ضمن دوست گرامی تو دومی قسمت set رو برداشتم مشکلش حل شد ولی انگار شی ء alertDialog برایش ناشناخته است این را نمی دانم چکار باید بکنم؟

ramjm906563
چهارشنبه 16 مرداد 1398, 05:35 صبح
دوستان مشکل اینطوری حل شد که رادیو باتن ها را به باتن تبدیل کردم و متد setOnClickListener() برایش نوشتم و این کد مال یکی از باتن ها است و این ها را دراکتیویتی MainActivity3 دارم :
button1_3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{final AlertDialog.Builder dialBuilder = new AlertDialog.Builder(MainActivity3.this);
LayoutInflater inflater = MainActivity3.this.getLayoutInflater();
View dialogView = inflater.inflate(R.layout.timepickerdialog1, null);
dialBuilder.setView(dialogView);
dialBuilder.setCancelable(true);


final EditText hour=null,minute=null,second=null;


dialBuilder.setPositiveButton("ذخیره", new DialogInterface.OnClickListener() {
@Override


public void onClick(DialogInterface dialogInterface, int i) {
try{
if(hour.length()>0 & minute.length()>0 & second.length() > 0) {
String hour1=hour.getText().toString();
int hour2=Integer.parseInt(hour1);


String minute1=minute.getText().toString();
int minute2=Integer.parseInt(minute1);


String second1=second.getText().toString();
int second2=Integer.parseInt(second1);
}else{


Toast.makeText(getApplicationContext() ,"حداقل یکی از مقادیر وارد نشده است" , Toast.LENGTH_LONG).show();


}}catch (NullPointerException e1){


Toast.makeText(getApplicationContext() , "حداقل یکی از مقادیر وارد نشده است " , Toast.LENGTH_LONG).show();
}
dialogInterface.dismiss();
}
});
از آقای شیری دوباره تشکر می کنم لطف کردند در بدست آوردن پاسخ کمک شایانی کردند.

ramjm906563
پنج شنبه 17 مرداد 1398, 06:49 صبح
سلام
دوستان کد بالا کار میکنه ولی موقع اجرا قسمت catch هم اجرا میشه یعنی خطای nullpointerException میده و بدنه catch هم بعد از انتخاب گزینه ذخیره هم اجرا می شود دوستان راه حلی به نظرتون میرسه ؟