Estou começando a estudar sobre Mobile e uma dúvida inicial seria como fazer para exibir as informações contidas em um TextView em um ListView? Segue abaixo um exemplo que eu estou tentando fazer para funcionar, porem não está funcionando corretamente. Visto que ele tá adicionando a informação no ListView, porem quando eu vou salvar uma segunda informação, ele a substitui pela primeira, mas adicionando também uma nova linha.
public class Categoria implements Serializable {
private int id;
private String descricao;
public Categoria() {
}
public Categoria(String descricao) {
this.descricao = descricao;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public String toString() {
return (this.getDescricao() + " ");
}
}
public class CadastrarCategoriaActivity extends AppCompatActivity {
EditText descricao;
Categoria categoria = new Categoria();
List<Categoria> listaCategorias = new ArrayList<Categoria>();
ArrayAdapter<Categoria> adapterCategoria;
Button btnNovo, btnSalvar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cadastrarcategoria_activity);
descricao = (EditText) findViewById(R.id.etxDescricao);
btnNovo = (Button) findViewById(R.id.btnNovo);
btnSalvar = (Button) findViewById(R.id.btnSalvar);
if(savedInstanceState != null) {
// listaCategorias = savedInstanceState.getStringArrayList("listaCategorias");
}
else {
listaCategorias = new ArrayList<Categoria>();
}
adapterCategoria = new ArrayAdapter<Categoria>(this, android.R.layout.simple_list_item_1, listaCategorias);
ListView listView = (ListView) findViewById(R.id.rootCategoria);
listView.setAdapter(adapterCategoria);
btnNovo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
descricao.setText("");
}
});
btnSalvar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
categoria.setDescricao(descricao.getText().toString());
listaCategorias.add(categoria);
adapterCategoria.notifyDataSetChanged();
}
});
// String[] categoriasArray = getResources().getStringArray(R.array.categorias_array);
// ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, categoriasArray);
}
/**
* Metodo criado para não perdermos os dados quando mudar a posição de smartphone de portrait para landscape
* @param outState - Esse objeto nos ajuda a capturar e salvar o estado atual da tela (ou seja, os itens)
*/
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// outState.putStringArrayList("categorias", listaCategorias);
}
}
Desde já agradeço por qualquer ajuda.