2014-01-12 53 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

初始化每個if塊中的alertdialog不全局 – 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(); 
    } 
} 

祝你好運!