2011-10-01 16 views
13

Tôi muốn một hàng tùy chỉnh, vì vậy tôi đang sử dụng Chế độ xem danh sách trong xml và tăng vào một đoạn. Tôi rất bối rối về cách đặt bộ điều hợp cho Chế độ xem danh sách. Tôi đã tạo bộ điều hợp mới mở rộng Bộ điều hợp cơ sở. Trong phương thức getView, tôi thực sự không biết ngữ cảnh nào để truyền trong khi thổi phồng bố cục row.xml. Làm cách nào để đặt bộ điều hợp cho chế độ xem danh sách và ở đâu?đặt danh sách xem bộ điều hợp trong một đoạn trong 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()); điều này nên làm việc tôi nghĩ. –

Trả lời

18

Bạn phải mở rộng Listfragment (thay vì Fragment), và sử dụng ListFragment.setListAdapter của nó để thiết lập bộ chuyển đổi của bạn. Trong bộ điều hợp getView() thổi phồng hàng của bạn .. đó là tất cả

+0

Không thể tham chiếu tĩnh đến phương thức nonList static (ListAdapter) từ kiểu ListFragment –

+1

@SureshParmar, nó không phải là một phương thức tĩnh. Nếu bạn đang mở rộng 'ListFragment', phương thức là trên' this' – Blackbelt

10

Nếu bạn không muốn thay đổi lớp mở rộng, bạn nên sử dụng phương thức listview.setAdapter(...). Như bạn thấy trong ví dụ của tôi:

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

nó được giải quyết nhưng giúp tôi với http://stackoverflow.com/questions/29446088/how-to-get-alert này -dialog-spinner-values-in-textview –