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.
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();
}
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.
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.
Dies ist möglicherweise leichter zu verstehen. Achteckiges Forschungsinstitut. Vielen Dank. Es war hilfreich. (http://www.hakkaku.net/hakkaker_blog/20090831-590)
Recommended Posts