2011-10-01 11 views
13

Voglio una riga personalizzata, quindi sto usando una lista di vista in un xml e si gonfia in un frammento. Sono molto confuso da come impostare l'adattatore per la visualizzazione elenco. Ho creato un nuovo adattatore che estende l'adattatore di base. Nel metodo getView, non so davvero quale contesto passare mentre si gonfia il layout row.xml. Come si imposta l'adattatore per la vista elenco e dove?set list view adapter in un frammento in 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()); questo dovrebbe funzionare credo. –

risposta

18

È necessario estendere Listfragment (invece di Fragment), e utilizzando il suo ListFragment.setListAdapter per impostare l'adattatore. Nell'adattatore getView() gonfiate la vostra riga .. Questo è tutto

+0

Impossibile creare un riferimento statico al metodo non statico setListAdapter (ListAdapter) dal tipo ListFragment –

+1

@SureshParmar, non è un metodo statico. Se stai estendendo 'ListFragment', il metodo si trova su' this' – Blackbelt

10

Se non si desidera modificare la classe estesa, è necessario utilizzare il metodo listview.setAdapter(...). Come si vede nel mio esempio:

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 Pagina non trovata :( – Ahmed

+0

risolto, ma aiutami con questo http://stackoverflow.com/questions/29446088/how-to-get-alert -dialog-filatore-valori-in-TextView –

Problemi correlati