0

データベースにコミットしてそこから取得する前に、編集テキストと onClick からスピナーを更新するためのトリックがあるかどうか疑問に思っていますか? リストと spinnerAdapter はデータベースから値を取得するように設定されているため、この質問がばかげている可能性があることは承知しています。

私はこのロジックを考えていました.edittextにテキストを入力し、[OK]をクリックしてから、データベースに移動する前にこのテキストでスピナーを一時的に更新し、アクティビティで他のことを行い、最後にすべてをデータベースにコミットします. その後、アクティビティを閉じて再度開くと、一時的な値は失われますが、スピナーは同じ値で入力されますが、今回はデータベースから取得されます。

ここにいくつかのコードがあります:

    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