Voila je débute dans le développement android et je bloque sur un point. J'ai créé une application pour gérer le stock dans mon congélateur. Pour cela j'utilise une ListView que j'alimente via un RadioButton, un ImageButton et un EditText.
Je me suis inspiré du net pour alimenter ma ListView (et le code fonctionne très bien), or impossible de trouver un code qui s'adapte pour le tri (Je voudrais trier soit sur le congélateur, soit sur l'image) :/
Ayant pioché des bouts de code sur le net, j'admets ne pas avoir tout compris au bout de code, et je pense que c'est pour cela que ça coince concernant le tri. Je me demande si ma méthode pour alimenter ma ListView et "triable".
Voici mon code (j'ai retiré les imports) :
public class MainActivity extends AppCompatActivity {
private ListView maListe;
private EditText input;
private TextView output;
HashMap<String,String> map;
SimpleAdapter tr;
private ImageButton viande;
private ImageButton pain;
private ImageButton glace;
private ImageButton legume;
private ImageButton pizza;
private String testclic;
private RadioGroup choixCongel;
private String choixDuCongel;
private RadioButton grosCongel;
private RadioButton petitCongel;
private Button add;
private Button tri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//On associe nos éléments graphiques au code
maListe = (ListView)findViewById(R.id.liste);
add=(Button)findViewById(R.id.Ajouter);
tri=(Button)findViewById(R.id.Tri);
input=(EditText)findViewById(R.id.input);
output=(TextView)findViewById(R.id.output);
viande=(ImageButton)findViewById(R.id.viande);
pain=(ImageButton)findViewById(R.id.pain);
legume=(ImageButton)findViewById(R.id.legume);
pizza=(ImageButton)findViewById(R.id.pizza);
glace=(ImageButton)findViewById(R.id.ice);
choixCongel=(RadioGroup)findViewById(R.id.liste_congel);
grosCongel=(RadioButton)findViewById(R.id.grand_congel);
petitCongel=(RadioButton)findViewById(R.id.petit_congel);
//Création dela ArrayList qui va nous permettre de remplir la listView
final ArrayList<HashMap<String,String>> listItem = new ArrayList<HashMap<String,String>>();
//Création d'un SimpleAdapter qui se chargera de mettre les items présent dans notre list (listItem) dans la vue list_view.xml
tr = new SimpleAdapter(this,listItem,R.layout.list_view,new String[]{"image","nom","congel"},new int[] {R.id.image,R.id.nom,R.id.congel});
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (input.length() == 0) {
Toast.makeText(MainActivity.this, "Vous n'avez pas renseigné de nom d'aliment", Toast.LENGTH_LONG).show();
return;
}
if (petitCongel.isChecked() == false && grosCongel.isChecked() == false){
Toast.makeText(MainActivity.this, "Vous n'avez pas choisi de congélateur", Toast.LENGTH_LONG).show();
return;
}
if (choixCongel.getCheckedRadioButtonId() == R.id.grand_congel)
choixDuCongel = "Grand congélateur";
if (choixCongel.getCheckedRadioButtonId() == R.id.petit_congel)
choixDuCongel = "Petit congélateur";
map = new HashMap<String, String>();
map.put("nom", input.getText().toString());
map.put("congel",choixDuCongel);
if (testclic=="viande")
map.put("image",String.valueOf((R.drawable.viande)));
if (testclic=="glace")
map.put("image",String.valueOf((R.drawable.ice)));
if (testclic=="pain")
map.put("image",String.valueOf((R.drawable.pain)));
if (testclic=="legume")
map.put("image",String.valueOf((R.drawable.legume)));
if (testclic=="pizza")
map.put("image",String.valueOf((R.drawable.pizza)));
listItem.add(map);
maListe.setAdapter(tr);
output.setText(testclic);
choixCongel.clearCheck();
}
});
tri.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//code pour le tri par "image"
}
});
}
}
Et voici les 2 fichiers xml associés : Activity_main
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.