Android微调器 - 从Sqlite设置当前值

时间:2013-02-18 17:14:01

标签: android spinner


我的Android应用程序中有一个微调器的问题。

在一个活动中,我列出了一个表中的所有值,然后单击一个,我可以编辑记录的值 为此,我打开另一个活动,并发送数据库ID 在这个新活动中,我加载值acordind该ID并更新edittexts 但是,我的旋转器有问题 我用另一个“表格填充它,但在此之后我怎么能”将所选值“移动到正确的?” 例如,我有这样的表格:

客户:
id,姓名,年龄,地址,电话,idtype

TYPE:
id,name,obs

当我在我的活动中加载值时,从所选客户,我将获得我的类型的IDTYPE。但是,在旋转器中我只有“名字”
我该怎么办?
有什么想法吗?

这是代码:     公共类AlteraApiarios扩展Activity {     String Id;     EditText etNumero,etNome,etLocal,etLatitude,etLongitude,etDataCria;     CheckBox cbZona;     Spinner spTipo;     按钮btGravar,btAnular;     String [] ArrayTipo,IdBD;     SQLiteDatabase bancoDados = null;     光标光标;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.alteraapiarios);
    Inicializa_Objectos();
    Carrega_Spinner();
    Listeners();

    Intent iDadosRecebidos = getIntent();
    if (iDadosRecebidos != null )
    {
        Id=iDadosRecebidos.getStringExtra("id");
        Prepara_Alteracao();
    }
    else finish();
}

@Override
    protected void onResume() {
    super.onResume();

public void Prepara_Alteracao(){
    try{
        bancoDados = openOrCreateDatabase("GESTAPI", MODE_WORLD_READABLE , null);
        String selectQuery = "SELECT * FROM Apiarios WHERE id=" +Id;
        cursor=bancoDados.rawQuery(selectQuery, null);
        cursor.moveToFirst();
        etNumero.setText(cursor.getString(cursor.getColumnIndex("Numero")));
        etNome.setText(cursor.getString(cursor.getColumnIndex("Nome")));
        etLocal.setText(cursor.getString(cursor.getColumnIndex("Local")));
        etDataCria.setText(cursor.getString(cursor.getColumnIndex("DataCria")));
        if(cursor.getString(cursor.getColumnIndex("ZControlada")).equals("1")){
            cbZona.setChecked(true);
        } else cbZona.setChecked(false);
        etLatitude.setText(cursor.getString(cursor.getColumnIndex("GPSLat")));
        etLongitude.setText(cursor.getString(cursor.getColumnIndex("GPSLon")));

----->>>>>>>>       spTipo.setSelection(cursor.getInt(cursor.getColumnIndex("TipoApi")));



        bancoDados.close();
        }
        catch (Exception erro){
            MostraMensagem("Erro", "Ocorreu um erro ao consultar a Base de Dados: "+erro);
        }
}


public boolean Valida_Dados(){
    if (etNumero.length()<=0) return false;
    if (etNome.length()<=0) return false;
    return true;
}

public void Carrega_Spinner(){
    try{
        bancoDados = openOrCreateDatabase("GESTAPI", MODE_WORLD_READABLE , null);
        cursor=bancoDados.query("TiposApi", new String [] {"id","Tipo"}, null, null, null, null, null);
        cursor.moveToFirst();
        ArrayTipo=new String[cursor.getCount()];
        IdBD=new String[cursor.getCount()];
        for (int i=0; i != cursor.getCount() ; i++)
        {
            ArrayTipo[i]=""+cursor.getString(cursor.getColumnIndex("Tipo"));
            IdBD[i]=""+cursor.getString(cursor.getColumnIndex("id"));
            cursor.moveToNext();
        }
    bancoDados.close();
    }
    catch (Exception erro){
        MostraMensagem("Erro", "Ocorreu um erro ao consultar a Base de Dados: "+erro);
    }

    ArrayAdapter<String> adapter= new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,ArrayTipo);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spTipo.setAdapter(adapter);
}

public void Inicializa_Objectos(){
    etNome=(EditText) findViewById(R.idApiario.etNome);
    etNumero=(EditText) findViewById(R.idApiario.etNumero);
    etLocal=(EditText) findViewById(R.idApiario.etLocal);
    etLatitude=(EditText) findViewById(R.idApiario.etLatitude);
    etLongitude=(EditText) findViewById(R.idApiario.etLongitude);
    cbZona=(CheckBox) findViewById(R.idApiario.cbZona);
    spTipo=(Spinner) findViewById(R.idApiario.spTipo);
    etDataCria=(EditText) findViewById(R.idApiario.etDataCria);
    btGravar=(Button) findViewById(R.idApiario.btGravar);
    btAnular=(Button) findViewById(R.idApiario.btAnular);       
}

public void Listeners(){
    etDataCria.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(AlteraApiarios.this,MudaData.class));
        }
    });

    btAnular.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Prepara_Alteracao();
        }
    });

    btGravar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


        }
    });
}

public void MostraMensagem(String Titulo, String Mensagem)
{
    AlertDialog.Builder msg =new AlertDialog.Builder(AlteraApiarios.this);
    msg.setTitle(Titulo);
    msg.setMessage(Mensagem);
    msg.setNeutralButton("OK", null);
    msg.show();
}

}

0 个答案:

没有答案