2015-12-28 5 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); здесь вы кастинг convertView, тип которого является относительным макетом для текстового представления, которое дает ошибку –

ответ

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() 

в вашем если/другое

Смежные вопросы