2013-03-22 78 views
0

我想填充我的ListView與頁腳。出於這個原因,我創建了一個片段。但我有問題傳遞數據到片段。在另一個地方,它工作得很好,就像我做過的那樣。通過添加片段到現有的ListView缺少數據

listView1 = (ListView) findViewById(R.id.listView1);  

    MenueAdapter adapter = new MenueAdapter(MainActivity.this, 
      R.layout.mainview_menue_item_row, data_Storage_news, 
      getWindowManager().getDefaultDisplay().getWidth());  


    Intent intent_onTv = new Intent(context, 
      OnTvFragment.class); 

    intent_onTv.putExtra("data_Storage_tv", data_Storage_tv); 

    OnTvFragment frag = new OnTvFragment(); 
    frag.setArguments(intent_onTv.getExtras()); 
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();   
    ft.commit();  

    LayoutInflater inflater = getLayoutInflater();  
    View footer = inflater.inflate(R.layout.ontv_fragment, null);  

    getSupportFragmentManager().executePendingTransactions(); 

    listView1.addFooterView(footer);  
    listView1.setAdapter(adapter); 

該片段包含一個ViewFlipper並在另一個活動中工作得很好。

任何人都知道我做錯了什麼,或者可以告訴我一個正確的方法是如何做到的?

+0

你的腳'FragmentTransaction'是完全沒用的,你只需要創建並立即提交它(無任何片段在交易被提交)。你想把這個片段放在ListView的頁腳佈局中嗎(如果是的話,不要這樣做)? – Luksprog 2013-03-22 12:26:43

+0

mhh好吧,你會推薦什麼更好的方法? :) – luQ 2013-03-22 12:30:43

+0

如果您希望額外的頁腳使用「ListView」滾動,那麼將頁腳實現爲「Activity」中的代碼(不涉及片段)。如果頁腳應該低於'ListView',那麼在ListView下面插入一個包裝器'FrameLayout'並將你的片段添加到'FrameLayout'是非常簡單的。 – Luksprog 2013-03-22 12:33:21

回答

0

添加一個片段作爲頁腳到ListView - 我的解決辦法:

ListView.LayoutParams lp = new ListView.LayoutParams(ListView.LayoutParams.WRAP_CONTENT, ListView.LayoutParams.WRAP_CONTENT);   

    View footer = new View(listView1.getContext()); 

    footer = ((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.on_tv_fragment_empty, null);   
    footer.setLayoutParams(lp);  

    OnTvFragment frag = new OnTvFragment(); 
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();   
    ft.replace(R.id.ll, frag).commit();  
    getSupportFragmentManager().executePendingTransactions(); 

    listView1.addFooterView(footer); 
    listView1.setAdapter(adapter); 

確保,即footer被充氣空的FrameLayout,如:

<?xml version="1.0" encoding="utf-8"?> 
    <FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@layout/gradient_box" 
    android:id="@+id/ll" 
    />   

避免以下錯誤: How to make fragment transaction when clicked on a listitem?我的結果如下: enter image description here

希望這有助於人:)

相關問題