[JAVA] <Android> Changer la couleur d'arrière-plan de la ligne Liste de ListView

Posté après une longue période

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.

Stocker les données acquises à partir de la base de données dans l'adaptateur

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();
        }

Sujet principal

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.

À la fin

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à.

Site de référence

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

<Android> Changer la couleur d'arrière-plan de la ligne Liste de ListView
[Eclipse] Changer la couleur de la règle verticale
Bootstrap4 Changer la couleur du menu hamburger
[Swift] Changer la couleur du nœud SCN
[Android] [Java] Gérer l'état de CheckBox de ListView
[AndroidStudio] Changer la couleur du menu hamburger d'ActionBarDrawerToggle
J'ai vu la liste du développement Android collectivement
[Java] Supprimer les éléments de la liste
[Android] Définir dynamiquement la hauteur de ListView avec copie (pour les débutants)
[swift5] Comment changer la couleur de TabBar ou la couleur de l'élément de TabBar avec le code
Comprendre les bases de l'enregistrement audio Android
[Rails] Changer le nom de l'étiquette de f.label
Comment trier une liste de SelectItems
[N ° 004] Correction de l'écran de la liste des commandes du client
[Android] Liste tous les éléments de réglage sur l'écran de réglage
L'histoire du réglage de l'application Android avec libGDX
Modifiez l'URL de l'application du projet Eclipse (Maven).
Changer le fuseau horaire du conteneur https-portal en JST
Comment les microservices changent la façon de développer des applications
Modifier le dossier de placement de l'image et du conteneur Docker