6

Liste parçaları ve özel bağdaştırıcılarla nasıl çalışacağımı anlamaya çalışıyorum. Bu yüzden bu küçük örneği yapıyorum ve liste listemin bölücünü null olarak nerede bulabileceğimi merak ediyordum. Ben de bir şey gördümListFragment özel düzeninin Bölücüsü (null) nasıl ayarlanır

: "Renk/şeffaf @ android" Ama liste görünümü ile bir XML düzeni yok bölücü =: - android dividerHeight = "1dip" : - android :

farklı yollar buldular listview.setDivider (null) gibi, ama bu yöntemi benim kodumda kullanabileceğimi bilmiyorum çünkü listfragments kullanımı.

Kodum:

listview_item_row.xml 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

    <ImageView 
     android:id="@+id/ivCountry" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_launcher" 
     android:layout_weight="1"/> 

    <TextView 
     android:id="@+id/tvCountry" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:gravity="center_vertical" 
     android:text="TextView" 
     android:layout_weight="4" /> 

</LinearLayout> 

CountryList sınıf

public class CountryList extends ListFragment { 

    Country[] countries2 = new Country[] 
      { 
       new Country("Netherlands"), 
       new Country(R.drawable.bas,"Basque Country") 
      }; 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     CountryAdapter adapter = new CountryAdapter(inflater.getContext(),R.layout.listview_item_row,countries2); 
     setListAdapter(adapter); 
     getListView().setDivider(null); 

     return super.onCreateView(inflater, container, savedInstanceState); 
    } 

Her zaman onCreateView bir görünümü döndürerek ListFragment için özel bir görünüm ayarlayabilirsiniz

public class CountryAdapter extends ArrayAdapter<Country>{ 

Context context; 
int layoutResourceId; 
Country[] data = null; 

public CountryAdapter(Context context, int layoutResourceId, Country[] data) { 
    super(context,layoutResourceId,data); 
    this.context = context; 
    this.layoutResourceId = layoutResourceId; 
    this.data = data; 

} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    View row = convertView; 
    CountryHolder holder = null; 

    if (row == null) { 
     LayoutInflater inflater = ((Activity)context).getLayoutInflater(); 
     row = inflater.inflate(layoutResourceId, parent,false); 

     holder = new CountryHolder(); 
     holder.imgIcon = (ImageView) row.findViewById(R.id.ivCountry); 
     holder.txtTitle = (TextView)row.findViewById(R.id.tvCountry); 

     row.setTag(holder); 

    } else { 
     holder = (CountryHolder) row.getTag(); 
    } 

    Country country = data[position]; 
    holder.txtTitle.setText(country.getTitle()); 
    holder.imgIcon.setImageResource(country.getIcon()); 

    return row; 

} 

static class CountryHolder 
{ 
    ImageView imgIcon; 
    TextView txtTitle; 
} 

cevap

18

My CountryAdapter() ama'te açıklandığı gibi bir "@ id/android: liste" ile bir ListView olması gerekiyor.

sizin xml size android:divider="@null" yapmak veya gerçekten ListFragment kodu getListView().setDivider(null); bunu yapmak istiyorsanız (onActivityCreated() yöntemini) olabilir.

+0

Ben getListView() ekleyerek çalıştı setDivider (null) (kodumu "henüz oluşturulmamış içerik görünümü" bölümü) ama bu bana bir hata verir.. Biraz kafam karıştı. Bir liste görünümü ile bir xml düzenini işaret etmem gerektiğini anlıyorum, ama bunu nerede yapacağım? Ve bir liste görünümünde bir xml düzenini yaparsam, listview_item_row.xml'yi nereye koyarım? – Lokkio

+3

'getListView(). SetDivider (null);' onCreateView' içinde çağırmak yerine, 'onActivityCreated' olarak adlandırın ve sorunu düzeltin. Bir 'ListFragment' içindeki' onCreateView' fonksiyonuna asla dokunmamaya dikkat ediyorum. – MCeley

+0

Sonuncusu YES: D teşekkürler! – Lokkio

3

İç onCreateView kullanım:

getListView().setDivider(null);

+0

Parantezleri unuttun mu? – Lokkio

+0

Hangi parantezler? – Rawkode

+0

getListView()? – Lokkio

İlgili konular