Android - изменение фона из кода Java - PullRequest
1 голос
/ 16 февраля 2011

Моя проблема в том, что у меня есть собственный listView, заполненный из Runnable returnRes.Он заполняет определенные данные в макете, который я назвал как lay (R.id.layoutList).Моя цель - иметь разные цвета для каждого слоя в моем listView, я хочу переключать цвета между ними.1-й темно-синий, второй голубой, три темно-синий и т. Д. Этот код работает хорошо, но безрезультатно, мой пользовательский listView остается черным, когда я изменяю его в XML, он меняется, но не когдаэто установлено с Java.Есть идеи?

Спасибо

private Runnable returnRes = new Runnable() {

    @Override
    public void run() {
        if(myTasks != null && myTasks.size() > 0){
            TasksAdapter.notifyDataSetChanged();

            LinearLayout lay=(LinearLayout)findViewById(R.id.layoutList);

            for(int i=0;i<myTasks.size();i++){
                TasksAdapter.add(myTasks.get(i));
                if(i>0){
                    if(i%2==0){
                        lay.setBackgroundColor(R.color.background);
                    }
                }else{
                    if(i>0){
                        lay.setBackgroundColor(R.color.lightBlue);
                    }

                }
            }
        }
        ProgressDialog.dismiss();
        TasksAdapter.notifyDataSetChanged();
    }
  };

Ответы [ 2 ]

1 голос
/ 21 октября 2012
yourlayout.setBackgroundDrawable(getResources().getDrawable(R.drawable.yourbackgroundimage))
1 голос
/ 12 августа 2011

Попробуйте поискать в Google.getResources().R.color.lightBlue не фактический цвет, это id ресурса цвета (который является целочисленным кодом для цвета).Он будет работать нормально, если вы используете его в API, который ожидает идентификаторы ресурсов, но setBackgroundColor на самом деле нужен код цвета.

colors и ids оба просто закодированы как intкогда вы подходите к этому, то очень легко спутать одно с другим.

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