Я работаю над простым проектом crud. Все нормально, как создавать, читать, обновлять и удалять. Все отображается в новом действии xml для создания, чтения и обновления, но я хочу, чтобы действие «удалить» выполнялось непосредственно из диалогового окна предупреждения (не открывать новое действие xml и нажимать кнопку удаления).
Проблема в том, что я не знаю, как изменить код с кнопки щелчка на диалоговое окно предупреждения.
Вот кнопка Удалить onClick:
private void deleteData(){
class DeleteData extends AsyncTask<Void,Void,String> {
ProgressDialog loading;
@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(TampilPegawai2.this, "Updating...", "Tunggu...", false, false);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
loading.dismiss();
Toast.makeText(TampilPegawai2.this, s, Toast.LENGTH_LONG).show();
}
@Override
protected String doInBackground(Void... params) {
RequestHandler rh = new RequestHandler();
String s = rh.sendGetRequestParam(konfigurasi.URL_DELETE_EMP, id);
return s;
}
}
DeleteData de = new DeleteData();
de.execute();
}
private void confirmDeleteData(){
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setMessage("Apakah Kamu Yakin Ingin Menghapus Pegawai ini?");
alertDialogBuilder.setPositiveButton("Ya",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
deleteData();
startActivity(new Intent(TampilPegawai2.this,TampilSemuaPgw.class));
}
});
alertDialogBuilder.setNegativeButton("Tidak",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
public void onClick(View v) {
if(v == buttonUpdate){
updateData();
}
if(v == buttonDelete){
confirmDeleteData();
}
}
}
Я хочу поместить действие удаления в Случай 2, Вот код:
public void onItemClick(final AdapterView<?> parent, View view, final int position, long id) {
AlertDialog.Builder builder = new AlertDialog.Builder(TampilSemuaPgw.this);
builder.setTitle("Pilih Menu");
final CharSequence[] dialogitem = {"View", "Edit", "Delete"};
builder.setItems(dialogitem, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
switch(item){
case 0 :
Intent i = new Intent(getApplicationContext(), TampilPegawai.class);
HashMap<String,String> map =(HashMap)parent.getItemAtPosition(position);
String empId = map.get(konfigurasi.TAG_ID).toString();
i.putExtra(konfigurasi.EMP_ID,empId);
startActivity(i);
break;
case 1 :
Intent i2 = new Intent(getApplicationContext(), TampilPegawai.class);
HashMap<String,String> map2 =(HashMap)parent.getItemAtPosition(position);
String empId2 = map2.get(konfigurasi.TAG_ID).toString();
i2.putExtra(konfigurasi.EMP_ID,empId2);
startActivity(i2);
break;
case 2 :
/////// HERE IS THE CODE I WANT TO PUT //////////////
break;
}
}
});
builder.create().show();
}
Любая идея, как сделать это ? Пожалуйста, помогите.
Полный код, на всякий случай:
public class TampilPegawai2 extends Activity implements OnClickListener{
private EditText editTextId;
private EditText editTextName;
private EditText editTextDesg;
private EditText editTextSalary;
private Button buttonUpdate;
private Button buttonDelete;
private String id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tampil_pegawai_2);
Intent intent = getIntent();
id = intent.getStringExtra(konfigurasi.EMP_ID);
editTextId = (EditText) findViewById(R.id.editTextId);
editTextName = (EditText) findViewById(R.id.editTextName);
editTextDesg = (EditText) findViewById(R.id.editTextDesg);
editTextSalary = (EditText) findViewById(R.id.editTextSalary);
buttonUpdate = (Button) findViewById(R.id.buttonUpdate);
buttonDelete = (Button) findViewById(R.id.buttonDelete);
buttonUpdate.setOnClickListener(this);
buttonDelete.setOnClickListener(this);
editTextId.setText(id);
getData();
}
private void getData(){
class GetData extends AsyncTask<Void,Void,String>{
ProgressDialog loading;
@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(TampilPegawai2.this,"Fetching...","Wait...",false,false);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
loading.dismiss();
showData(s);
}
@Override
protected String doInBackground(Void... params) {
RequestHandler rh = new RequestHandler();
String s = rh.sendGetRequestParam(konfigurasi.URL_GET_EMP,id);
return s;
}
}
GetData ge = new GetData();
ge.execute();
}
private void showData(String json){
try {
JSONObject jsonObject = new JSONObject(json);
JSONArray result = jsonObject.getJSONArray(konfigurasi.TAG_JSON_ARRAY);
JSONObject c = result.getJSONObject(0);
String name = c.getString(konfigurasi.TAG_NAMA);
String desg = c.getString(konfigurasi.TAG_POSISI);
String sal = c.getString(konfigurasi.TAG_GAJIH);
editTextName.setText(name);
editTextDesg.setText(desg);
editTextSalary.setText(sal);
} catch (JSONException e) {
e.printStackTrace();
}
}
private void updateData(){
final String name = editTextName.getText().toString().trim();
final String desg = editTextDesg.getText().toString().trim();
final String salary = editTextSalary.getText().toString().trim();
class UpdateData extends AsyncTask<Void,Void,String>{
ProgressDialog loading;
@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(TampilPegawai2.this,"Updating...","Wait...",false,false);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
loading.dismiss();
Toast.makeText(TampilPegawai2.this,s,Toast.LENGTH_LONG).show();
}
@Override
protected String doInBackground(Void... params) {
HashMap<String,String> hashMap = new HashMap<>();
hashMap.put(konfigurasi.KEY_EMP_ID,id);
hashMap.put(konfigurasi.KEY_EMP_NAMA,name);
hashMap.put(konfigurasi.KEY_EMP_POSISI,desg);
hashMap.put(konfigurasi.KEY_EMP_GAJIH,salary);
RequestHandler rh = new RequestHandler();
String s = rh.sendPostRequest(konfigurasi.URL_UPDATE_EMP,hashMap);
return s;
}
}
UpdateData ue = new UpdateData();
ue.execute();
}
private void deleteData(){
class DeleteData extends AsyncTask<Void,Void,String> {
ProgressDialog loading;
@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(TampilPegawai2.this, "Updating...", "Tunggu...", false, false);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
loading.dismiss();
Toast.makeText(TampilPegawai2.this, s, Toast.LENGTH_LONG).show();
}
@Override
protected String doInBackground(Void... params) {
RequestHandler rh = new RequestHandler();
String s = rh.sendGetRequestParam(konfigurasi.URL_DELETE_EMP, id);
return s;
}
}
DeleteData de = new DeleteData();
de.execute();
}
private void confirmDeleteData(){
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setMessage("Apakah Kamu Yakin Ingin Menghapus Pegawai ini?");
alertDialogBuilder.setPositiveButton("Ya",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
deleteData();
startActivity(new Intent(TampilPegawai2.this,TampilSemuaPgw.class));
}
});
alertDialogBuilder.setNegativeButton("Tidak",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
public void onClick(View v) {
if(v == buttonUpdate){
updateData();
}
if(v == buttonDelete){
confirmDeleteData();
}
}
}