Spinner内部查询数据库中的项目 - Android

时间:2016-02-21 09:09:47

标签: java android mobile

我有一个名为“SecondActivity”的活动是完整代码

package br.exemplosqlite;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import org.w3c.dom.Text;

public class SecondActivity extends Activity implements AdapterView.OnItemSelectedListener {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        //referencia a Spinner
        //Spinner coligada;

        //final TextView nome = (TextView)findViewById(R.id.txvNome);
        //final TextView sobrenome = (TextView)findViewById(R.id.txvSobrenome);
        //final Spinner pday = (Spinner)findViewById(R.id.spinner);

        final Spinner spcoligada = (Spinner) findViewById(R.id.coligada);

        //spinner = (Spinner)findViewById(R.id.spinner);

        ArrayAdapter adaptercoligada = ArrayAdapter.createFromResource(this, R.array.coligada, android.R.layout.simple_spinner_item);
        spcoligada.setAdapter(adaptercoligada);

        Button ok = (Button)findViewById(R.id.btnok);

        ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //chamada para a nova Activity
                Intent intent = new Intent(SecondActivity.this, ListUsersActivity.class);
                intent.putExtra("coligada", spcoligada.getSelectedItem().toString());

                //intent.putExtra("nomePessoa", nome.getText().toString());
                //intent.putExtra("sobrenomePessoa", sobrenome.getText().toString());
                //intent.putExtra("day", pday.getSelectedItem().toString());

                startActivity(intent);
            }
        });
    }

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
    }
}

但是,我真正想要的是,传递在Spinner上选择的项目,在查询时转到我的BD.class,下面是我的“BD.class”

package br.exemplosqlite;

import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.provider.SyncStateContract;
import android.widget.Spinner;

public class BD {
    private SQLiteDatabase bd;

    public BD(Context context){
        BDCore auxBd = new BDCore(context);
        bd = auxBd.getWritableDatabase();
    }

    public void inserir(Produtos produtos){
        ContentValues valores = new ContentValues();
        valores.put("item", produtos.getItem());
        valores.put("coligada", produtos.getColigada());
        valores.put("filial", produtos.getFilial());

        bd.insert("produtos2", null, valores);
    }

    public void atualizar(Produtos produtos){
        ContentValues valores = new ContentValues();

        valores.put("item", produtos.getItem());
        valores.put("coligada", produtos.getColigada());
        valores.put("filial", produtos.getFilial());

        bd.update("produtos2", valores, "_id = ?", new String[]{""+produtos.getId()});
    }

    public void deletar(Produtos produtos){
        bd.delete("produtos2", "_id = "+produtos.getId(), null);
    }

    public List<Produtos> buscar(){

        List<Produtos> list = new ArrayList<Produtos>();
        String[] colunas = new String[]{"_id", "item", "coligada","filial"};

        Cursor cursor = bd.rawQuery("select * from produtos2",null);

        if(cursor.getCount() > 0){
            cursor.moveToFirst();
            do {
                Produtos p = new Produtos();
                p.setId(cursor.getLong(0));
                p.setItem(cursor.getString(1));
                p.setColigada(cursor.getString(2));
                p.setFilial(cursor.getString(3));
                list.add(p);
            } while(cursor.moveToNext());
        }
        return(list);
    }
}

所以,我想改变这个:Cursor cursor = bd.rawQuery(“select * from produtos2”,null); 对此:

Cursor cursor = bd.rawQuery("select * from "+itemselected,null);

2 个答案:

答案 0 :(得分:0)

这是您的解决方案的代码。

Spinner spcoligada = (Spinner) findViewById(R.id.coligada);
 private static final String itemSelected=spcoligada.getSelectedItem();
Cursor cursor = bd.query(itemSelected, new String[]{ColumnName1, ColumnName2, Column2,ColumnName3,ColumnName4},
                null, null, null, null, null);

答案 1 :(得分:0)

我找到了解决方案。

我创建了一个类Global,在此之后我将全局变量的值分配给我的Spiner on Select。