2016-05-30 11 views
0

私はサイト上で同様の質問に従いましたが、私の問題は解決しませんでした。私はlistviewがフラグメント内にあるはずの行を1つだけ取得しています。私はその断片を加えます。助けてください。フラグメントリスト内のデータリストビューは表示されません

@Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_fragment); 
     adapter = new CustomAdapter(this, R.layout.List_viewit, arr); 
     if (savedInstanceState == null) 
     { 

      getFragmentManager() 
        .beginTransaction() 
        .add(R.id.container, new Frag1()) 
        .commit(); 
     } 
    } 

アダプタはとき活動ではなく、私はfragment.Theでそれを実装しようとしていたときにArrayAdapter.Theリストビューを拡張するクラスCustomAdapterがデータを見せていたのである活動の

public class Frag1 extends Fragment 
{ 
    ListView listView; 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     View view=inflater.inflate(R.layout.fragment, container, false); 
     listView = (ListView) view.findViewById(R.id.list_view); 
     return view; 


    } 
    @Override 
    public void onActivityCreated(Bundle savedInstanceState) 
    { 
     super.onActivityCreated(savedInstanceState); 




     listView.setAdapter(FragActivity.adapter); 
    } 
} 

のonCreate()メソッド配列arrはゼロではありません。

+0

ような何かこのチュートリアルをチェックし、ListFragmentでfrag1クラスを拡張する必要がありますhttp://www.tutorialspoint.com/android/android_list_fragment.htm – Nenco

+0

私はあなたが使用して、その後の活動のクラスにアダプタを宣言していることを理解このアダプタは断片的です。私は正しい? – Masum

+0

@Masumはいフラグメントを追加する前に、アクティビティでアダプタを初期化しました。 – zek54

答えて

0

これを行うことができますか?

あなたFragmentActivity

BaseAdapter mAdapter; 
public BaseAdapter getmAdapter() { 
    return mAdapter; 
} 

あなたの破片クラス

YourFragmentActivity mActivity; 
public void onAttach(Activity activity) { 
    super.onAttach(activity); 
    try { 
     mActivity = ((YourFragmentActivity) activity); 
    } catch (ClassCastException ex) { 
     ex.printStackTrace(); 
    } 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    listView.setAdapter(mActivity.getmAdapter()); 
} 
0

OnActivityCreate()方法でlistView.setAdapter(FragActivity.adapter); を呼び出すことはありません。 onCreatviewに電話をかけるか、フラグメントが使用可能になったときはいつでも使用してください。

0

あなたのFragActivityクラスのアダプタを静的として宣言してください。この

public static CustomAdapter adapter; 
関連する問題