2017-08-24 12 views
0

Mon code semble bon, mais ne fonctionne pasComment changer seul possition en ListView avec TextView

Il est ma liste de XAML définition possition: ListItemCenter

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:gravity="center_vertical" 
    android:layout_width="fill_parent" 
    android:id ="@+id/linear_layout_center" 
    android:layout_height="fill_parent"> 
<!-- Defining where should text be placed. You set you text color here--> 
    <TextView 
     android:id="@+id/list_content_center" 
     android:textColor="@android:color/black" 
     android:gravity="center" 
     android:text="sample" 
     android:textSize="20dp" 
     android:layout_margin="4dip" 
     android:layout_width="fill_parent" 
     android:textStyle="bold" 
     android:layout_height="wrap_content" 
     android:clickable="false" 
     android:contextClickable="false" 
     android:focusable="false" 
     android:textColorHighlight="@android:color/black" /> 
</LinearLayout> 

Dans mon code

ArrayAdapter<string> content_adapter = new ArrayAdapter<string>(this, Resource.Layout.ListItemCenter, Resource.Id.list_content_center, content_tab); 
TextList.Adapter = content_adapter; 

// Here listview work fine 

LinearLayout linlay = (LinearLayout)TextList.Adapter.GetView(4, null, TextList);    // here i have LinearLayout objec - it work 
TextView mTextView = (TextView)linlay.FindViewById(Resource.Id.list_content_center);  // here i heve TextView object - it also work 

mTextView.SetTextColor(Color.Red);   // dont work 
mTextView.Gravity = GravityFlags.Left;   // properties is changed but list is still the same 

Pourquoi ça ne marche pas. S'il vous plaît me barre

Répondre

0

Comment changer possition unique ListView avec TextView

-vous un ArrayAdapter pouvez personnalisé pour implémenter cette fonctionnalité:

public class MyAdapter : ArrayAdapter<string> 
{ 
    public MyAdapter(Context context, int resource, int textViewResourceId, string[] objects) : base(context, resource, textViewResourceId, objects) 
    { 
    } 

    public override View GetView(int position, View convertView, ViewGroup parent) 
    { 
     View view = base.GetView(position, convertView, parent); 
     TextView textView = view.FindViewById<TextView>(Resource.Id.list_content_center); 
     if(position == 4) 
     { 
      textView.SetTextColor(Color.Red); 
      textView.Gravity = GravityFlags.Left; 
     } 
     return view; 
    } 
} 

Ensuite, vous pouvez utiliser cette ArrayAdapter comme d'habitude :

MyAdapter content_adapter = new MyAdapter(this, Resource.Layout.ListItemCenter, Resource.Id.list_content_center, content_tab); 
TextList.Adapter = content_adapter; 

Effet comme this.

+0

Cela fonctionne.Merci beaucoup – Kamil