Android Viewpager的片段类中的Listview
我有一个ViewPager设置,有3个片段类和一个pageadapter类 主要活动类Android Viewpager的片段类中的Listview,android,listview,android-viewpager,Android,Listview,Android Viewpager,我有一个ViewPager设置,有3个片段类和一个pageadapter类 主要活动类 package com.example.swipeview; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.view.PagerAdapter; import a
package com.example.swipeview;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
public class MainActivity extends FragmentActivity {
ViewPager viewpager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewpager = (ViewPager) findViewById(R.id.viewpagers);
com.example.swipeview.PagerAdapter padapter = new com.example.swipeview.PagerAdapter(getSupportFragmentManager());
viewpager.setAdapter(padapter);
}
}
页面适配器类
package com.example.swipeview;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class PagerAdapter extends FragmentPagerAdapter {
public PagerAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
switch(arg0){
case 0:
return new FragmentOne();
case 1:
return new FragmentTwo();
case 2:
return new FragmentThree();
default:
break;
}
return null;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 3;
}
}
以我的第一节零碎课为例
package com.example.swipeview;
import com.example.swipeview.R;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FragmentOne extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState){
return inflater.inflate(R.layout.fragment_one_layout, container, false);
}
}//end of class
我已经尝试了在Activity类中创建listview的常用方法,但这对fragment类不起作用。我想知道是否有人能告诉我如何将listview编码到片段类中 带有自定义适配器的示例(使用列表作为源):
公共类ItemsFragment扩展了片段{
/*必须稍后填充*/
私有最终列表项=新的ArrayList();
专用项适配器;
私有ListView ListView=null;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图布局=充气机。充气(R.layout.fragment\u items\u list,container,false);
adapter=newitemAdapter(this.getActivity(),items);
listView=(listView)layout.findViewById(R.id.listView\u项);
返回布局;
}
@凌驾
已创建视图上的公共void(视图,捆绑保存状态){
super.onViewCreated(视图,savedInstanceState);
setAdapter(适配器);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Item currentItem=适配器.getItem(位置);
// (...)
}
});
}
/* (...) */
}
谢谢您的回复。因为我对android编程还是有点陌生,我想知道你是否可以告诉我你对ItemAdapter做了什么?你是否为此创建了一个类,到目前为止我只处理了ArrayAdapter,也许我只是混淆了两者。@user3653432该类不是Android SDK的一部分,它只是我的一个项目中的一个类(基本上是一个个性化的ArrayAdapter)。您可以使用所需的任何适配器(ArrayAdapter、CursorAdapter等)
public class ItemsFragment extends Fragment {
/* Must be populated later. */
private final List<Item> items = new ArrayList<>();
private ItemAdapter adapter;
private ListView listView = null;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.fragment_items_list, container, false);
adapter = new ItemAdapter(this.getActivity(), items);
listView = (ListView) layout.findViewById(R.id.listview_items);
return layout;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Item currentItem = adapter.getItem(position);
// (...)
}
});
}
/* (...) */
}