Android setBackground или цвет текста для особой строки списка просмотра с несколькими столбцами - PullRequest
0 голосов
/ 26 августа 2011

Как мы устанавливаем фон ListView для конкретной строки.

    ListView list = getListView();
     sd = new SimpleAdapter(this, routhPath, R.layout.route_path,new String[] {"routeCode","routeName","outlets" },new int[] { R.id.routeCode,R.id.routeName,R.id.outlets});
     list.setAdapter(sd);
     list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
     list.setSelected(true);
     list.setTextFilterEnabled(true);
     list.setItemsCanFocus(true);
     list.setSelectionAfterHeaderView();

     if(isVisitedToVisitHeader()){
         if(defaultRoutePos != 0){
            Log.i("-----" ,"---defaultRoutePos---" + defaultRoutePos +" --count-- "+list.getChildCount());
             list.setItemChecked(defaultRoutePos, true);
            // list.getChildAt(positions).setBackgroundColor(R.color.red);
             //list.getChildAt(defaultRoutePos).setBackgroundColor(R.color.red);
         }
     }

Это мой код. Я закончил, используя SimpleAdapter. Здесь list.getChildCount(), дайте 0. Эта часть я в onCreate().

Пожалуйста, помогите мне ...

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 26 августа 2011

Оформить заказ на этот пример Custom ListView,

* ** 1003 тысяча два * Пример

Также этот ответ StackOverflow

StackOverflow Ответ

1 голос
/ 26 августа 2011

пакет com.android.listactivity;

импорт android.app.Activity; import android.view.LayoutInflater; импорт android.view.View; import android.view.ViewGroup;

import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MySimpleArrayAdapter extends ArrayAdapter<String> {
    private final Activity context;
    private final String[] names;

    public MySimpleArrayAdapter(Activity context, String[] names) {
        super(context, R.layout.rowlayout, names);
        this.context = context;
        this.names = names;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = context.getLayoutInflater();
        View rowView = inflater.inflate(R.layout.rowlayout, null, true);
        TextView textView = (TextView) rowView.findViewById(R.id.label);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
        textView.setText(names[position]);
        // Change the icon for Windows and iPhone
        String s = names[position];

// Здесь вы можете сделать что-нибудь со строкой определенной позиции

        if (s.startsWith("Windows7") || s.startsWith("iPhone")
                || s.startsWith("Solaris")) {

            imageView.setImageResource(R.drawable.no);
        } else {
            imageView.setImageResource(R.drawable.ok);
        }

        return rowView;
    }
}

Я предлагаю использовать пользовательский адаптер, как показано выше:

Если нет, вы можете попытаться получить list.getPositionForView (view) установить цвет фона или изображение для желаемых конкретных позиций

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...