J'ai été occupé et je n'ai pas pu mettre à jour beaucoup, donc je l'ai mis à jour après un long moment. Cette fois, je voulais changer la couleur de la ligne de ListView dans l'application sur laquelle je travaille actuellement, je vais donc laisser une note à ce sujet.
J'ai omis divers contenus, mais le but est Il se sent comme "lorsque vous obtenez des données de la base de données et préparez l'affichage de la liste, je vais colorer la ligne des données actuellement sélectionnées afin qu'elles soient faciles à comprendre."
sample.java
list = findViewById(R.id.splist_array);
SampleList = new ArrayList<HashMap<String,String>>();
int i = 0;
flg_pos = -1;
//list
String NAME,ID,KGN,FLG;
//DB
helper = new DBHelper(getApplicationContext());
HashMap<String,String> bList = new HashMap<String,String>();
try{
db = helper.getWritableDatabase();
//Lisez le numéro
RecordCount = DatabaseUtils.queryNumEntries(db,TABLE);
if(RecordCount == 0){
flg = false;
}else{
//Lis
c = db.rawQuery(SAMPLE_SQL,null);
while(c.moveToNext()){
NAME = c.getString(c.getColumnIndex(COL_NAME));
ID = String.valueOf(c.getInt(c.getColumnIndex(COL_ID)));
KGN = c.getString(c.getColumnIndex(COL_KGN));
FLG = c.getString(c.getColumnIndex(COL_FLG));
//Jugez s'il est sélectionné ici et attribuez-lui une position.
if(FLG.equals("t")){
flg_pos = i;
}
bList = new HashMap<String,String>();
bList.put(COL_ID,ID);
bList.put(COL_NAME,NAME);
bList.put(COL_KGN,KGN);
SampleList.add(bList);
i++;
}
}
}catch(SQLiteException e){
e.printStackTrace();
}
Une fois l'acquisition ci-dessus terminée, elle est finalement définie dans Adapter.
sample.java
if(SampleList != null){
//GetView lors de la configuration de l'adaptateur()Remplacer pour que cela puisse être appelé.
//getView(--)Est appelé à plusieurs reprises pour la ligne définie, alors utilisez-le. (Position=À partir de 0)
adapter = new SimpleAdapter(MainActivity.this,SampleList,
R.layout.list_row,FROM,TO){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position,convertView, parent);
//Déterminez la ligne que vous souhaitez colorer ici
//flg_pos est la ligne que vous voulez colorer
if(flg_pos == position){
//Colorez les parties de la vue.
view.setBackgroundColor(Color.parseColor("#4169e1"));
listText1 = view.findViewById(R.id.btext1); //id
listText2 = view.findViewById(R.id.btext2); //name
listText3 = view.findViewById(R.id.btext3); //kgn
listText1.setTextColor(Color.WHITE);
listText2.setTextColor(Color.WHITE);
listText3.setTextColor(Color.WHITE);
}
return view;
}
};
list.setAdapter(adapter);
}else if(flg == false){
//S'il n'y a rien dans la liste, je veux afficher quelque chose.
}else{
Log.e("ListError","Missing List...");
Toast.makeText(this,"ListReadingError...",Toast.LENGTH_SHORT);
}
C'était facile. Plutôt.
J'ai essayé divers googles, mais il y avait de nombreux articles tels que la création de méthodes, et c'était le moyen le plus simple de l'implémenter en douceur. Eh bien, si vous voulez personnaliser quelque chose d'autre, j'ai l'impression que je peux le faire un peu plus. Je suis désolé qu'il n'y ait pas de dessin terminé ou de contenu tel que List_row. Je n'ai pas beaucoup de temps, alors je viendrai le mettre à jour ici et là.
Cela peut être plus facile à comprendre. Institut de recherche octogonal. Merci beaucoup. Cela a été utile. (http://www.hakkaku.net/hakkaker_blog/20090831-590)
Recommended Posts