更改ListView onFetchComplete的第一行颜色

时间:2014-04-28 14:44:07

标签: android listview android-listview getview

我有一个listview,在从数据库加载后,onFetchComplete将其中一行移动到列表顶部。我有工作,但我也想改变第一行的背景颜色,并改变第一行的一些TextView文本和背景颜色。我是android的新手,所以我很难搞清楚这一点。一些帮助将非常感激。

这是我改变一行的地方:

@Override
public void onFetchComplete(List<Application> data) {
    String myDefault = "3";
    // dismiss the progress dialog
    if(dialog != null)  dialog.dismiss();
    // create new adapter
    ApplicationAdapter adapter = new ApplicationAdapter(this, data);

    for(int i = 0; i < data.size(); ++i){
        if(data.get(i).getAppID().equals(myDefault)){
            Application app = data.get(i);
            data.remove(i);
            data.add(0, app);
        }
    }


    // set the adapter to list
    setListAdapter(adapter);
}

我已经尝试在第一次加载ListView时使用get view进行一些更改,但是当我这样做时,我得到了第一行和最后一行的更改。我不知道为什么会这样做。另外,我不知道如何更改整行的背景。

这是我尝试过的一个例子:

    @Override
public View getView(int position, View convertView, ViewGroup parent) {
    View v = convertView;

    if(v == null) {
        LayoutInflater li = LayoutInflater.from(getContext());
        v = li.inflate(R.layout.app_custom_list, null);            
    }

    Application app = items.get(position);

    if(app != null) {
        ImageView icon = (ImageView)v.findViewById(R.id.iconImg);
        TextView titleText = (TextView)v.findViewById(R.id.titleTxt);
        TextView descText = (TextView)v.findViewById(R.id.descTxt);            
        TextView creatorText = (TextView)v.findViewById(R.id.creatorTxt);
        TextView createdText = (TextView)v.findViewById(R.id.createdTxt);            
        TextView rankText = (TextView)v.findViewById(R.id.rankTxt);

        if(icon != null) {
            Resources res = getContext().getResources();
            String sIcon = "com.sj.jsondemo:drawable/" + app.getIcon();
            icon.setImageDrawable(res.getDrawable(res.getIdentifier(sIcon, null, null)));
        }

        if(position==0)
        {
            if(titleText != null) {
                titleText.setText(app.getTitle());
                titleText.setBackgroundColor(Color.parseColor("#E4D0C6"));
            }
            if(descText != null) descText.setText(app.getDesc());
            if(creatorText != null) creatorText.setText(app.getCreator());            
            if(createdText != null) createdText.setText(app.getCreated());            
            if(rankText != null) rankText.setText(app.getRank()); 
        }
        else
        {
            if(titleText != null) titleText.setText(app.getTitle());
            if(descText != null) descText.setText(app.getDesc());
            if(creatorText != null) creatorText.setText(app.getCreator());            
            if(createdText != null) createdText.setText(app.getCreated());            
            if(rankText != null) rankText.setText(app.getRank());                   
        }


    }

    return v;
}

0 个答案:

没有答案