2014-01-12 3 views
-2

Код был запущен, пока я не выполнил операцию alertdialog. Действие прерывается, когда он открывает код.произошла ошибка при реализации диалогового окна предупреждения?

Класс и OnCreate функции:

public class NewTask extends Activity implements OnCheckedChangeListener { 
    AlertDialog error = new AlertDialog.Builder(this).create(); 
       Button Done, Date; 
       Task newtask=new Task(); 
       TextView dateview,prob; 
       EditText name,desc; 
       RadioGroup prio; 
       int year,month,day; 
       static final int DATE_DIALOG_ID = 1; 
       @Override 
       protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_new_task); 
      initialize(); 
      Setdate(); 
      done(); 
       } 

использование диалогового

   prio.setOnCheckedChangeListener(this); 
    Done.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      newtask.name=name.getText().toString(); 
      newtask.discrb=desc.getText().toString(); 
      if(newtask.name.length()==0||newtask.day==0||newtask.periocheck==0||newtask.discrb.length()==0) 
      { 
       error.setTitle("ERROR"); 
       error.setMessage("Please fill all the fields!!!"); 
       error.setButton("ok", new DialogInterface.OnClickListener() { 

        @Override 
        public void onClick(DialogInterface arg0, int arg1) { 
         // TODO Auto-generated method stub 

        } 
       }); 
       error.show(); 
      } 
      else if(newtask.year<c.get(Calendar.YEAR)||(newtask.year==c.get(Calendar.YEAR)&&(newtask.month)<c.get(Calendar.MONTH))||(newtask.year==c.get(Calendar.YEAR)&&(newtask.month)==c.get(Calendar.MONTH)&&newtask.day<c.get(Calendar.DAY_OF_MONTH))) 
      { 
       error.setTitle("ERROR"); 
       error.setMessage("Choose an existing day!!!"); 
       error.setButton("ok", new DialogInterface.OnClickListener() { 

        @Override 
        public void onClick(DialogInterface arg0, int arg1) { 
         // TODO Auto-generated method stub 

        } 
       }); 
       error.show(); 
      } 

так, пожалуйста, помогите мне, чтобы узнать ошибку

+3

Пожалуйста, добавьте полученные сообщения об ошибках из LogCat в сообщение. – VonL

+0

инициализировать alertdialog внутри каждого блока if, а не глобально – Ranjit

ответ

0

Добавить это:

if(newtask.name.length()==0||newtask.day==0||newtask.periocheck==0||newtask.discrb.length()==0) 
      { 
       DialogFragment error = new ErrorMessage(); 
       error.show(getSupportFragmentManager(), "Error"); 

      } 

Создать ErrorMessage класс следующим образом:

public class ErrorMessage extends DialogFragment { 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     builder.setMessage("Choose an existing day!!!"); 
       ...//Add title buttons here 
     return builder.create(); 
    } 
} 

Удачи вам!

Смежные вопросы