2011-10-01 3 views
13

Je veux une ligne personnalisée, de sorte que j'utilise une vue de liste dans un fichier XML et de gonfler dans un fragment. Je suis très confus de la façon de définir l'adaptateur pour la liste Voir. J'ai créé un nouvel adaptateur qui étend l'adaptateur de base. Dans la méthode getView, je ne sais vraiment pas quel contexte passer en gonflant la disposition row.xml. Comment définir l'adaptateur pour la vue de liste et où?définir l'affichage de liste adaptateur dans un fragment dans android

public class ResultsFragment extends Fragment{ 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.results_layout, container, false); 
     listView = (ListView)v.findViewById(R.id.results); 
     return v; 
    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 


     loadPage(dataBean.getWhat(), dataBean.getWhere(), dataBean.getPageStart()); 

     //resultsAdapter.setRssData(rssData); 
     //setListAdapter(resultsAdapter); 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     Context context = getActivity().getApplicationContext(); 
     resultsAdapter = new ResultsAdapter(context); 
    } 





    /** 
    * Set List Adapter 
    */ 
    private void setAdapter(){ 
     if(listView.getAdapter() == null){ 
      listView.setAdapter(resultsAdapter); 
     } 
     else{ 
      resultsAdapter.notifyDataSetChanged(); 
     } 
    } 


} 
+0

ResultsAdapter (getActivity()); cela devrait fonctionner je pense. –

Répondre

18

Vous devez étendre Listfragment (au lieu de Fragment), et en utilisant son ListFragment.setListAdapter pour définir votre adaptateur. Dans l'adaptateur getView() gonflez votre ligne .. que s tous

+0

Impossible de créer une référence statique à la méthode non statique setListAdapter (ListAdapter) à partir du type ListFragment –

+1

@SureshParmar, il ne s'agit pas d'une méthode statique. Si vous étendez 'ListFragment', la méthode est sur' this' – Blackbelt

10

Si vous ne souhaitez pas modifier votre classe étendue, vous devez utiliser la méthode listview.setAdapter(...). Comme vous le voyez dans mon exemple:

ListView productList= (ListView) getActivity().findViewById(R.id.product_list); 


    SampleAdapter adapter = new SampleAdapter(getActivity()); 


    adapter.add(new SampleItem(
      "Sunny LCD TV 2\" SN022L66-T1 Full HD", 
      R.drawable.product_sample_pic); 


    productList.setAdapter(adapter); 
+0

@Johnson Page introuvable :( – Ahmed

+0

il a résolu mais aidez-moi avec cela http://stackoverflow.com/questions/29446088/how-to-get-alert -dialog-spinner-values-in-textview –

Questions connexes