2011-10-01 10 views
13

Quiero una fila personalizada, así que estoy usando una vista de lista en un xml e inflando en un fragmento. Estoy muy confundido sobre cómo configurar el adaptador para la vista de lista. Creé un nuevo adaptador que amplía el adaptador base. En el método getView, realmente no sé qué contexto pasar al inflar el diseño row.xml. ¿Cómo configuro el adaptador para la vista de lista y dónde?establecer el adaptador de vista de lista en un fragmento en 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()); esto debería funcionar, creo. –

Respuesta

18

debe extender Listfragment (en lugar de Fragment), y utilizando su ListFragment.setListAdapter para configurar su adaptador. En el adaptador getView() infle su fila ... eso es todo

+0

No se puede hacer una referencia estática al método no estático setListAdapter (ListAdapter) del tipo ListFragment –

+1

@SureshParmar, no es un método estático. Si está extendiendo 'ListFragment', el método está en' this' – Blackbelt

10

Si no desea cambiar su clase extendida, debe utilizar el método listview.setAdapter(...). Como puede ver en mi ejemplo:

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 Not Found :( – Ahmed

+0

lo resolvió pero ayúdeme con este http://stackoverflow.com/questions/29446088/how-to-get-alert -dialog-spinner-values-en-textview –

Cuestiones relacionadas