[JAVA] <Android> Ändern Sie die Hintergrundfarbe der List-Zeile von ListView

Gepostet nach langer Zeit

Ich war beschäftigt und konnte nicht viel aktualisieren, also habe ich es nach langer Zeit aktualisiert. Dieses Mal wollte ich die Linienfarbe von ListView in der App ändern, an der ich gerade arbeite, also werde ich eine Notiz darüber hinterlassen.

Speichern Sie die von der Datenbank erfassten Daten im Adapter

Ich habe verschiedene Inhalte weggelassen, aber der Zweck ist Es fühlt sich an wie "Wenn Sie Daten aus der Datenbank abrufen und die Listenanzeige vorbereiten, werde ich die Zeile der aktuell ausgewählten Daten einfärben, damit sie leicht zu verstehen sind."

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

       //Lesen Sie die Nummer
       RecordCount = DatabaseUtils.queryNumEntries(db,TABLE);
       if(RecordCount == 0){
         flg = false;
       }else{
       //Lesen
        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));

            //Beurteilen Sie, ob es hier ausgewählt ist, und geben Sie ihm eine 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();
        }

Hauptthema

Nachdem die obige Erfassung abgeschlossen ist, wird sie schließlich in Adapter eingestellt.

sample.java


        if(SampleList != null){
        //GetView beim Einstellen des Adapters()Überschreiben, damit aufgerufen werden kann.
        //getView(--)Wird wiederholt für die gesetzte Zeile aufgerufen, verwenden Sie diese. (Position=Von 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);
            
            //Bestimmen Sie hier die Linie, die Sie einfärben möchten
                    //flg_pos ist die Linie, die Sie einfärben möchten
                    if(flg_pos == position){
                        //Färben Sie die Ansichtsteile.
                        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){
            //Wenn die Liste nichts enthält, möchte ich etwas anzeigen.
        }else{
            Log.e("ListError","Missing List...");
            Toast.makeText(this,"ListReadingError...",Toast.LENGTH_SHORT);
        }

Es war einfach. Lieber.

Am Ende

Ich habe verschiedene Brillen ausprobiert, aber es gab viele Artikel wie das Erstellen von Methoden, und dies war der einfachste Weg, sie reibungslos zu implementieren. Nun, wenn Sie etwas anderes anpassen möchten, habe ich das Gefühl, dass ich es ein bisschen mehr tun kann. Es tut mir leid, dass es keine fertige Zeichnung oder Inhalte wie List_row gibt. Ich habe nicht viel Zeit, also werde ich hier und da kommen, um es zu aktualisieren.

Referenzseite

Dies ist möglicherweise leichter zu verstehen. Achteckiges Forschungsinstitut. Vielen Dank. Es war hilfreich. (http://www.hakkaku.net/hakkaker_blog/20090831-590)

Recommended Posts

<Android> Ändern Sie die Hintergrundfarbe der List-Zeile von ListView
[Eclipse] Ändern Sie die Farbe des vertikalen Lineals
Bootstrap4 Ändern Sie die Farbe des Hamburger-Menüs
[Swift] Ändern Sie die Farbe des SCN-Knotens
[Android] [Java] Verwalten Sie den Status der CheckBox von ListView
[AndroidStudio] Ändern Sie die Farbe des Hamburger-Menüs von ActionBarDrawerToggle
Ich habe die Listenansicht der Android-Entwicklung gemeinsam gesehen
[Java] Löschen Sie die Elemente von List
[Android] Dynamisch die Höhe von ListView mit Kopie einstellen (für Anfänger)
[swift5] So ändern Sie die Farbe der TabBar oder die Farbe des TabBar-Elements mit Code
Verstehen Sie die Grundlagen von Android Audio Record
[Rails] Ändern Sie den Labelnamen von f.label
So sortieren Sie eine Liste von SelectItems
[No.004] Der Bestelllistenbildschirm des Bestellers wurde korrigiert
[Android] Listet alle Einstellungselemente auf dem Einstellungsbildschirm auf
Die Geschichte der Optimierung der Android-App mit libGDX
Ändern Sie die URL der Eclipse-Projekt-App (Maven).
Ändern Sie die Zeitzone des https-Portal-Containers in JST
Wie Microservices die Art und Weise der Anwendungsentwicklung verändern
Ändern Sie den Docker-Image- und Container-Platzierungsordner