2016-05-30 96 views
0

我在网站上跟着类似的问题,没有解决我的问题。我只是得到一个单行的地方,我的listview应该是在片段。我已经在活动之前的适配器我添加片段。请帮忙。数据ListView中的片段不显示

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()活动的方法

@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(); 
     } 
    } 

适配器扩展ArrayAdapter.The列表视图中显示的活动,但不是我想实现它fragment.The时数据的类CustomAdapter的数组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;