Java 从数据库更新微调器值

Java 从数据库更新微调器值,java,android,Java,Android,下面的代码是一个创建从菜单栏调用的alertdialog的方法,该菜单栏中有一个从数据库填充的微调器。此对话框有一个按钮,该按钮调用另一个方法打开另一个alertdialog,将新供应商添加到微调器数据库 我的问题是,有没有办法做到这一点?在showAddVendorDialog向数据库添加新值后,它会用最近添加的值更新微调器。现在,如果我从showAddDialog关闭对话框,当我再次打开它时,它将显示新值,但我希望它显示新值而不必关闭它 protected void showAddDialo

下面的代码是一个创建从菜单栏调用的alertdialog的方法,该菜单栏中有一个从数据库填充的微调器。此对话框有一个按钮,该按钮调用另一个方法打开另一个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();
}
protectedvoid showAddDialog(){
LayoutInflater LayoutInflater=LayoutInflater.from(FlavorList.this);
View promptView=LayoutFlater.充气(R.layout.add\u flavor\u alert,null);
AlertDialog.Builder alertDialogBuilder=新建AlertDialog.Builder(FlavorList.this);
alertDialogBuilder.setView(promptView);
alertDialogBuilder.setTitle(“添加味道”);
最终列表spinnerray=dbManager.getAllVendors();
最终ArrayAdapter dataAdapter=新的ArrayAdapter(此,
android.R.layout.simple_微调器_项目,微调阵列);
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
最终EditText名称集=(EditText)promptView.findViewById(R.id.flavorname\u add);
vendorSpinner=(微调器)promptView.findViewById(R.id.vendor\u微调器);
//最终EditText brandET=(EditText)promptView.findViewById(R.id.FavorBrand_添加);
最终EditText权重集=(EditText)promptView.findViewById(R.id.flavorweight_-add);
最终按钮addVendorButton=(按钮)promptView.findViewById(R.id.btn_addvendor);
addVendorButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
showAddVendorDialog();
dataAdapter.notifyDataSetChanged();
}
});//addVendorButton侦听器的结尾
vendorSpinner.setAdapter(数据适配器);
alertDialogBuilder.setCancelable(false)
.setPositiveButton(“添加”,新建DialogInterface.OnClickListener(){
public void onClick(DialogInterface对话框,int-id){
最终字符串名称=nameET.getText().toString();
最终字符串brand=vendorSpinner.getSelectedItem().toString();
最终双倍权重=double.valueOf(weighet.getText().toString());
dbManager.insertFlavor(名称、品牌、重量);
Intent main=newintent(getApplicationContext(),FlavorList.class)
.setFlags(意图、标志、活动、清除、顶部);
星触觉(主);
}
})
.setNegativeButton(“取消”,
新建DialogInterface.OnClickListener(){
public void onClick(DialogInterface对话框,int-id){
dialog.cancel();
}
});
AlertDialog alert=alertDialogBuilder.create();
alert.show();
}//结束showModifyDialog
受保护的void showAddVendorDialog(){
LayoutInflater vendorInflater=FlavorList.this.getLayoutInflater();
View vendorView=vendorInflater.充气(R.layout.add\u vendor\u alert,null);
AlertDialog.Builder vendorDialogBuilder=新建AlertDialog.Builder(FlavorList.this);
setView(vendorView);
setTitle(“添加新供应商”);
final EditText vendorNameET=(EditText)vendorView.findViewById(R.id.new_vendor);
vendorDialogBuilder.setCancelable(false)
.setPositiveButton(“添加”,新建DialogInterface.OnClickListener(){
public void onClick(DialogInterface对话框,int-id){
最后一个字符串vendorName=vendorName.getText().toString();
dbManager.insertVendor(vendorName);
}
})
.setNegativeButton(“取消”,
新建DialogInterface.OnClickListener(){
public void onClick(DialogInterface对话框,int-id){
dialog.cancel();
}
});
AlertDialog vendorAlert=vendorDialogBuilder.create();
show();
}

是的,您可以这样做,因此,当您从
addVendorDialog
添加供应商时,您需要刷新
ShowVendorDialog
数据集
,为此,您必须刷新
微调器适配器

为此,您需要在类级别声明
spinnerray
dataAdapter

然后,当您添加供应商时,即在
vendorDialogBuilder
onClick()
函数中为正按钮刷新如下值

final String vendorName = vendorNameET.getText().toString();
dbManager.insertVendor(vendorName);

spinnerArray = dbManager.getAllVendors();
dataAdapter.notifyDataSetChanged();

这将刷新微调器值

是的,您可以这样做,因此当您从
addVendorDialog
添加供应商时,您需要刷新
showvendodialog
数据集,为此,您必须刷新
微调器适配器

为此,您需要在类级别声明
spinnerray
dataAdapter

然后,当您添加供应商时,即在
vendorDialogBuilder
onClick()
函数中为正按钮刷新如下值

final String vendorName = vendorNameET.getText().toString();
dbManager.insertVendor(vendorName);

spinnerArray = dbManager.getAllVendors();
dataAdapter.notifyDataSetChanged();

这将刷新微调器值

我做了所有这些,但仍然没有更新。按照您所说的做,并在类中为showAddDialog()声明AlertDialog,然后在数据库更新后关闭并再次调用该方法。我完成了所有这些操作,但仍然没有更新。按照您所说的操作,在类中为showAddDialog()声明AlertDialog,然后在数据库更新后关闭并再次调用该方法。