Ich habe Spinner oder Listview mit Flaggen-Symbol und den Namen der Währung (I ihre R ids in SQLite zu speichern, zum Beispiel R.drawable.aed und R.string.aed aus ziehbar Ordner und string.xml)Richtiger Weg, um Zeichenketten und Drawbare Ressourcen in sqlite zu speichern?
Dann füge ich neue ziehbar, zum Beispiel
Meine Flaggen-Icons verschiebt cxx.png, ändert sich einige von ihnen mit anderen Bildern, nicht Flaggen-Icons. Dies passiert, wenn ich die App auf meinem Telefon aktualisiere. Wenn ich es installiere, oder lösche und installiere dann alles gut.
Ich habe verstanden, dass sqlite in meinem Programm speichern R IDs von Zeichnern nur einmal bei der Installation. Wenn ich Drawables oder Zeichenketten hinzufüge oder lösche, ändert R Iids Zahlen, aber in meiner sqlite Tabelle speicherte altes R ids.
kann ich versuchen Methode zu schreiben, das alle R ids in SQLite jedes Mal aktualisiert wird, wenn ich hinzufügen oder neue Saiten und Drawables löschen, durch DB_VERSION jedes Mal zu erhöhen. Gibt es eine einfachere Lösung?
Dies ist einer meiner Adapter:
public class SpinnerCursorAdapter extends CursorAdapter {
public SpinnerCursorAdapter(Context context, Cursor cursor) {
super(context, cursor, 0);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View view = LayoutInflater.from(context).inflate(R.layout.spinner_item, parent, false);
ViewHolder viewHolder = new ViewHolder(view);
view.setTag(viewHolder);
return view;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
ViewHolder viewHolder = (ViewHolder) view.getTag();
int flagIconId = Integer.valueOf(cursor.getString(5));
viewHolder.flagIcon.setImageResource(flagIconId);
String currencyName = cursor.getString(4);
viewHolder.currencyName.setText(currencyName);
viewHolder.currencyCharCode.setText(cursor.getString(1));
}
private static class ViewHolder {
final ImageView flagIcon;
final TextView currencyName;
final TextView currencyCharCode;
private ViewHolder(View view) {
flagIcon = (ImageView) view.findViewById(R.id.spinner_flag_icon);
currencyName = (TextView) view.findViewById(R.id.spinner_currency_name);
currencyCharCode = (TextView) view.findViewById(R.id.spinner_currency_char_code);
}
}
}
Ja, Sie haben Recht, gehen Sie voran. – Amy