2015-10-08 4 views
0

Когда нажата кнопка сохранения button, я хочу, чтобы она отобразила диалоговое окно с ok и cancelbutton для подтверждения. Если щелкнуть okbutton, данные будут вставлены после сообщения «Данные сохранены». Если cancel, он будет уволен.DialogBox не отображается

Я стараюсь работать с образцом кода, но когда я нажимаю на savebutton, приложение разбилось, не показывая ошибки в logcat. Как я могу это исправить?

WorkDetailsTable.java

Button btn1=(Button)findViewById(R.id.button2); 
     btn1.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View arg0) { 
       AlertDialog.Builder builder=new AlertDialog.Builder(getApplicationContext()); 
       builder.setTitle("Data Saved"); 
       builder.setMessage("Are you sure you want to save?"); 
       builder.setIcon(android.R.drawable.ic_dialog_alert); 
       builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int ii) { 
         W1 = txtWork1.getText().toString(); 
         W2 = txtWork2.getText().toString(); 
         W3 = txtWork3.getText().toString(); 
         W4 = txtWork4.getText().toString(); 
         a1 = spinnerTra.getSelectedItem().toString(); 
         a2 = spinnerTra2.getSelectedItem().toString(); 
         a3 = spinnerTra3.getSelectedItem().toString(); 
         a4 = spinnerTra4.getSelectedItem().toString(); 
         P1 = per1.getText().toString(); 
         P2 = per2.getText().toString(); 
         P3 = per3.getText().toString(); 
         P4 = per4.getText().toString(); 
         long ab = ts.insertTimeSheet(name, weather,date,status); 
         WF.insertWorkForce(subContractors, noPeople, noHours); 
         WD.insertWorkDetails(a1, W1, P1, b, c, th, ab); 
         WD.insertWorkDetails(a2, W2, P2, d, e1, th, ab); 
         WD.insertWorkDetails(a3, W3, P3, f, g, th, ab); 
         WD.insertWorkDetails(a4,W4,P4,h,i,th,ab); 
         Toast.makeText(context, "Data Saved", Toast.LENGTH_SHORT).show(); 

        } 

       }); 
       builder.setNegativeButton("Cancel",new DialogInterface.OnClickListener() 
       { 
        public void onClick(DialogInterface dialog,int ii) 
        { 
         dialog.dismiss(); 
       } 
      }); 
       builder.show(); 


      } 
     }); 
    } 

ответ

0

Попробуйте заменить эту строку:

AlertDialog.Builder builder=new AlertDialog.Builder(getApplicationContext());

с этим:

AlertDialog builder=new AlertDialog.Builder(WorkDetailsTable.this).create();

+0

Builder (android.content.C ontex) в Builder не может быть применен – John

+0

Извините, мой плохой. Работает ли WorkDetailsTable.java активность? – Distwo

+0

Ya..public класс WorkDetailsTable extends AppCompatActivity реализует View.OnClickListener – John