0
下面的代碼是一種創建從菜單欄調用的alertdialog的方法,該菜單欄包含從數據庫填充的微調器。此對話框有一個按鈕,它調用另一個方法打開另一個警報對話框,以將新供應商添加到微調數據庫。更新數據庫中的微調器值
我的問題是,在showAddVendorDialog向數據庫添加新值之後是否有這樣的方法,它會使用最近添加的值更新微調器。現在,如果我關閉了來自showAddDialog的對話框,它將在我再次打開它時顯示新值,但我希望它顯示新值而不必關閉它。
protected void showAddDialog() {
LayoutInflater layoutInflater = LayoutInflater.from(FlavorList.this);
View promptView = layoutInflater.inflate(R.layout.add_flavor_alert, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(FlavorList.this);
alertDialogBuilder.setView(promptView);
alertDialogBuilder.setTitle("Add Flavor");
final List<String> spinnerArray = dbManager.getAllVendors();
final ArrayAdapter<String> dataAdapter = new ArrayAdapter<>(this,
android.R.layout.simple_spinner_item, spinnerArray);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
final EditText nameET = (EditText) promptView.findViewById(R.id.flavorname_add);
vendorSpinner = (Spinner) promptView.findViewById(R.id.vendor_spinner);
//final EditText brandET = (EditText) promptView.findViewById(R.id.flavorbrand_add);
final EditText weightET = (EditText) promptView.findViewById(R.id.flavorweight_add);
final Button addVendorButton = (Button) promptView.findViewById(R.id.btn_addvendor);
addVendorButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
showAddVendorDialog();
dataAdapter.notifyDataSetChanged();
}
});//end of addVendorButton listener
vendorSpinner.setAdapter(dataAdapter);
alertDialogBuilder.setCancelable(false)
.setPositiveButton("Add", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
final String name = nameET.getText().toString();
final String brand = vendorSpinner.getSelectedItem().toString();
final double weight = Double.valueOf(weightET.getText().toString());
dbManager.insertFlavor(name, brand, weight);
Intent main = new Intent(getApplicationContext(), FlavorList.class)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(main);
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = alertDialogBuilder.create();
alert.show();
}//end showModifyDialog
protected void showAddVendorDialog(){
LayoutInflater vendorInflater = FlavorList.this.getLayoutInflater();
View vendorView = vendorInflater.inflate(R.layout.add_vendor_alert, null);
AlertDialog.Builder vendorDialogBuilder = new AlertDialog.Builder(FlavorList.this);
vendorDialogBuilder.setView(vendorView);
vendorDialogBuilder.setTitle("Add New Vendor");
final EditText vendorNameET = (EditText) vendorView.findViewById(R.id.new_vendor);
vendorDialogBuilder.setCancelable(false)
.setPositiveButton("Add", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int id){
final String vendorName = vendorNameET.getText().toString();
dbManager.insertVendor(vendorName);
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog vendorAlert = vendorDialogBuilder.create();
vendorAlert.show();
}
我做這一切,仍然沒有更新。是否在類中聲明併爲alertAddialog()聲明瞭AlertDialog,然後在數據庫更新後關閉並再次調用該方法。 – MarinheiroTX