0

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);

Fragment には ViewFlipper が含まれており、別のアクティビティで完全に正常に動作します。

誰が私が間違っているのか、またはそれがどのように行われたのか適切な方法を教えてくれますか?

4

1 に答える 1

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"
    />        

次のバグを回避するには: listitem をクリックしたときにフラグメント トランザクションを作成するには?

私の結果は次のようになります。 ここに画像の説明を入力

これが誰かに役立つことを願っています:)

于 2013-03-26T11:55:00.693 に答える