Search code examples
javaandroidandroid-adaptergetresource

cannot resolve method getResource().getColor() error


I am trying to change text color in java code (I dun want to change it at xml)and I know i need to call getResource(). but I get error that "cannot resolve method getResource()". and i try to declare Context and use context to call getResource() and i get null value.

My java code as below:

public class NewsAdapter extends BaseAdapter implements SectionIndexer, HeadListView.HeaderAdapter, OnScrollListener{
......

@Override
    public View getView(int position, View convertView,       ViewGroup parent) {
    .......
    NewsEntity news = getItem(position);
        mHolder.item_title.setText(news.getTitle());
        mHolder.comment_count.setText(news.getCommentNum() + "评论");
        mHolder.publish_time.setText(DateTools.getTimeAgo(news.getPublishTime()));//+ "小时前");//getTimefromLong(news.getPublishTime()) + "小时前");
        List<String> imgUrlList = news.getPicList();
        mHolder.popicon.setVisibility(View.INVISIBLE);
        mHolder.comment_count.setVisibility(View.VISIBLE);
        mHolder.right_padding_view.setVisibility(View.VISIBLE);
        if(imgUrlList !=null && imgUrlList.size() !=0){
           // if(imgUrlList.size() == 1){

                    //mHolder.large_image.setVisibility(View.GONE);
                    mHolder.left_image.setVisibility(View.VISIBLE);

            Picasso.with(activity.getBaseContext()).load(imgUrlList.get(0)).fit().into(mHolder.left_image);
                   // imageLoader.displayImage(imgUrlList.get(0), mHolder.left_image, options);
                   // imageLoader.displayImage(imgUrlList.get(2), mHolder.item_image_2, options);

        }else{
            mHolder.left_image.setVisibility(View.GONE);
            //mHolder.item_image_layout.setVisibility(View.GONE);
        }

        if(news.getNews_colour() == 0){
            mHolder.item_title.setTextColor(getResources().getColor(R.color.black));
        }else if(news.getNews_colour() == 1){
            mHolder.item_title.setTextColor(getResources().getColor(R.color.red));
        }
        
......

    }
}

My question is how can i change text color at below java code:

        if(news.getNews_colour() == 0){
        mHolder.item_title.setTextColor(getResources().getColor(R.color.black));
    }else if(news.getNews_colour() == 1){
        mHolder.item_title.setTextColor(getResources().getColor(R.color.red));
    }

I'm a newbie at this stuff so any help will be appreciated. Thanks in Advance!


Solution

  • You can get the Context from your views:

    mHolder.item_title.setTextColor(mHolder.item_title.getContext().getResources().getColor(R.color.black));