0

我想知道在将微调器提交到数据库并从那里检索之前,是否有一些技巧可以从 edittext 和 onClick 更新微调器?列表和 spinnerAdapter 设置为从数据库中检索值,所以我知道这个问题可能很愚蠢。

我在想这个逻辑:输入一些文本到edittext,单击确定,然后用这个文本临时更新微调器,在它进入数据库之前,然后在活动中做一些其他的事情,最后将所有内容提交到数据库。当您再次关闭并打开活动时,临时值会丢失,但微调器会使用相同的值填充,但这次来自数据库。

这是一些代码:

    public class Vnos extends Activity {

 //... some values

    @Override
    protected void onCreate(Bundle savedInstanceState) {

//... 

        final Spinner spinner = (Spinner) findViewById(R.id.spinner1);

        final List<VnosiDB> spinerItems = datasource.getAllNiz();
        final ArrayAdapter<VnosiDB> spinnerAdapter = new ArrayAdapter<VnosiDB>(
                this, android.R.layout.simple_spinner_item, spinerItems);
        spinnerAdapter
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(spinnerAdapter);
        String nizIzSpinerja = spinner.getItemAtPosition(
                spinner.getSelectedItemPosition()).toString();
        nizDB = nizIzSpinerja;

        // nov niz

        novNiz = (TextView) findViewById(R.id.dodaj);
        novNiz.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                final Dialog dialog = new Dialog(Vnos.this,
                        android.R.style.Theme_Holo_Dialog);
                dialog.setContentView(R.layout.nov_niz);

                TextView okNov = (TextView) dialog.findViewById(R.id.okNovNiz);
                okNov.setOnClickListener(new android.view.View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub

                        EditText inputNiz = (EditText) dialog
                                .findViewById(R.id.niz);
                        dialog.dismiss();
                        nizDB = inputNiz.getText().toString();
                        spinnerAdapter.notifyDataSetChanged();

                    }
                });

                dialog.show();

            }

        });


// ...some other code...
//...
//.. then, here I commit everything to database...

        shrani = (TextView) findViewById(R.id.shrani);
        shrani.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                vnosDB = (int) System.currentTimeMillis();

                datasource.createVnos(zacetekDB, razlikaDB, nizDB, deloDB,
                        postavkaDB, dodatekDB, opisDB, vnosDB);
                datasource.close();
                Toast test = Toast.makeText(Vnos.this, "Vnos " + deloDB
                        + " uspešen!", Toast.LENGTH_LONG);
                test.show();
                startActivity(new Intent("com.sandpit.jazstudent.URE"));
                finish();

            }
        });


}

}
4

1 回答 1

0

您正在使用ArrayAdapter,它由 加载List<VnosiDB>。我假设它VnosiDB代表数据库中的一条记录。为什么不在需要时在此列表中放置一个临时记录?

List<VnosiDB> spinerItems = new ArrayList<VnosiDB>();
VnosiDB tempRec = new VnosiDB();
//set some values to the properties if you need to
spinnerItems.add(tempRec);
//populate the spinner with the temp record
于 2013-10-03T15:27:06.353 回答