2015-12-28 57 views
0

我是新来android,我想显示替代文字颜色和替代背景颜色,但只有背景颜色工作。当我尝试两种方式时,我都会收到错误信息。
下面是logcat中所示的错误:在列表视图中的替代文字和背景颜色

android.widget.RelativeLayout不能转换到android.widget.TextView

这是getView()方法在我的适配器类:

public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 

    ViewHolder view; 

    if(convertView==null) 
    { 
     inflater = (LayoutInflater)mcontext.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
     view = new ViewHolder(); 
     convertView = inflater.inflate(R.layout.awards_layout_circle, null); 

     view.txtViewTitle = (TextView) convertView.findViewById(R.id.Text_View); 
     view.imgViewFlag = (ImageView) convertView.findViewById(R.id.profile_image); 

     convertView.setTag(view); 
    } 
    else 
    { 
     view = (ViewHolder) convertView.getTag(); 
    } 

    if (position % 2 == 0){ 
     convertView.setBackgroundResource(R.color.colorNav); 
     ((TextView) convertView).setTextColor(Color.WHITE); 
    } else { 
     convertView.setBackgroundResource(R.color.colorWhite); 
     ((TextView) convertView).setTextColor(Color.BLACK); 
    } 

    view.txtViewTitle.setText(listAward.get(position)); 
    view.imgViewFlag.setImageResource(listFlag.get(position)); 

    return convertView; 
} 

awards_layout_circle.xml使用项目列表:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin"> 

    <de.hdodenhof.circleimageview.CircleImageView 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/profile_image" 
     android:layout_width="match_parent" 
     android:layout_height="250dp" 
     android:src="@drawable/bunnyarj" 
     android:layout_gravity="center" 
     app:civ_border_width="2dp" 
     app:civ_border_color="#FF000000"/> 

    <TextView 
     android:id="@+id/Text_View" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:textSize="18dp" 
     android:text="wsdwedwebd dwedbewd w" 
     android:fontFamily="sans-serif-medium" 
     android:layout_below="@+id/profile_image" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 
</RelativeLayout> 
+1

((TextView的)convertView).setTextColor(Color.WHITE);在这里你正在将类型为Relative布局的convertView转换为给出错误的textview –

回答

0

你必须改变这样的代码,

if (position % 2 == 0){ 
    convertView.setBackgroundResource(R.color.colorNav); 
    ((TextView) view.txtViewTitle).setTextColor(Color.WHITE); 
} else { 
    convertView.setBackgroundResource(R.color.colorWhite); 
    ((TextView) view.txtViewTitle).setTextColor(Color.BLACK); 

} 
+0

谢谢你的工作完美@Sahil Garg – vishnu

1

您使用的是ViewHolder。没有理由将convertView转换为任何类型的对象(尤其是错误的)。就在使用

view.txtViewTitle.setTextColor() 

你的if/else

相关问题