Настройки Android как ехать - PullRequest
       3

Настройки Android как ехать

0 голосов
/ 01 октября 2011

В одном из моих действий onCreate я использую следующее, чтобы получить представление списка. Применяемый макет xml взят из XML-файла "country_row". Теперь я хочу использовать общие настройки, чтобы изменить часть макета моего списка, например, цвет шрифта, цвет фона, который следует сохранить. Как я знаю, я могу добиться этого, используя общие настройки. Но если предположить, что я знаю способ определения его в xml-файле, в этом разделе, как я могу применить некоторые изменения, скажем, другой цвет шрифта или цвет фона, используя тот же xml-файл country_row. Или я должен полностью определить новый файл XML? Что я путаю.

   public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
        int sort = prefs.getInt("sort_pref", -1); // -1 will be the result if no preference was set before 
        if(sort == 1) 
            sortOrder = "year";//sort on year 
        else if (sort == 2)
            sortOrder = "country";//sort on country


        ContentResolver contentResolver = getContentResolver();

        Cursor c = contentResolver.query(CONTENT_URI, null, null, null, sortOrder);     
        String[] from = new String[] { "year", "country" };
        int[] to = new int[] { R.id.year, R.id.country };       
        SimpleCursorAdapter sca = new SimpleCursorAdapter(this, R.layout.country_row, c, from, to);     

    setListAdapter(sca);
}

1 Ответ

0 голосов
/ 01 октября 2011

Это было бы быстро и грязно:

new SimpleCursorAdapter(this, R.layout.country_row, c, from, to) {
    @Override
    public void getView(int position, View convertView, ViewGourp parent) {
        convertView = super.getView(position, convertView, parent);
        View viewToModify = convertView.findViewByid(/* ID of view to modify */);
        // apply your changes here
    }
}

Чистое решение - создать собственный адаптер и сделать это там.

...