2


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

在一项活动中,我列出了一张表中的所有值,然后单击其中一项,我可以编辑记录的值。
为此,我打开另一个活动,并发送数据库 ID。
在这个新活动中,我根据该 ID 加载值并更新编辑文本。
但是,我的微调器有问题。
我用另一个“表”填充它,但是在此之后我如何“将选定的值”移动到正确的位置?
例如,我有这个表:

CUSTOMERS:
id, name, age, address, phone, idtype

TYPE:
id, name , obs

当我从选定的客户处加载活动中的值时,我将获得我的类型的 IDTYPE。但是,在微调器中,我只有“名称”。

我怎样才能做到这一点???
有任何想法吗?

代码如下: public class AlteraApiarios extends Activity { String Id; EditText etNumero,etNome,etLocal,etLatitude,etLongitude,etDataCria; 复选框 cbZona; 微调器 spTipo;按钮 btGravar,btAnular; 字符串 [] 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();
}

}

4

0 回答 0