新手求助:大神们帮帮我,关于在ViewPage中添加GridView的问题

如图我在viewpage中建立了这样三个页面,现在我想在第一个页面中添加一个Gridview布局,但是总是出错,GridView和Viewpage两份代码分开使用没有任何问题,但是一但嵌套在一起就老是出错,请大家伙帮我看看,以下是主函数,谢谢大伙了。



public class MainActivity extends ActionBarActivity {
    private ViewPager viewpage;
    private List<View>list;
    private List<Map<String, Object>> data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewpage=(ViewPager)findViewById(R.id.viewpager);
View view1=LayoutInflater.from(MainActivity.this).inflate(R.layout.freehero, null);
GridView gridview=(GridView)findViewById(R.id.gridview);
        data=GetData.GetData();
        SimpleAdapter simpleAdapter=new SimpleAdapter(MainActivity.this, data, R.layout.freeheromessage, 
new String[]{"imageview","HeroName", "Heroname","prices"},new int[]{R.id.image,R.id.textview1,R.id.textview2,R.id.textview3});
    gridview.setAdapter(simpleAdapter);
View view2=LayoutInflater.from(MainActivity.this).inflate(R.layout.myhero, null);
View view3=LayoutInflater.from(MainActivity.this).inflate(R.layout.allhero, null);
    list=new ArrayList<View>();
list.add(view1);
list.add(view2);
list.add(view3);    
viewpage.setAdapter(new MyAdapter());

}
class MyAdapter extends PagerAdapter{
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
         // TODO Auto-generated method stub
         ((ViewPager)container).addView(list.get(position));
         return list.get(position);
        }
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
         // TODO Auto-generated method stub
          ((ViewPager)container).removeView(list.get(position));
        }
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==arg1;
}

}
}



这是GetData文件
package cn.example.Hero;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class GetData {
private static int[] resIds=new int[]{R.drawable.image1,R.drawable.image2,R.drawable.image3,
                                                                     R.drawable.image4,R.drawable.image5,R.drawable.image6};
private static String[] HeroName=new String[]{"策士统领","宝石骑士","暗黑元首","麦林炮手","刀锋之影","提莫队长"};
private static String[] Heroname=new String[]{"乌鸦","奶爸","辛得拉","小炮","男刀","提莫"};
private static int[] prices=new int[]{6300,4800,4800,6300,3150,1250};
private static  List<Map<String, Object>> data;
public static List<Map<String, Object>> GetData() {
// TODO Auto-generated constructor stub
data=new ArrayList<Map<String,Object>>();
for(int i=0;i<resIds.length;i++){
Map<String, Object> map1=new HashMap<String, Object>();
map1.put("imageview",resIds[i]);
map1.put("HeroName", HeroName[i]);
map1.put("Heroname", Heroname[i]);
map1.put("prices", prices[i]);
data.add(map1);
 }
return data;
}
}


如果需要其他文件,大神们请回复我,谢谢大家了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ViewPager是Android的一个控件,它可以实现滑动切换多个Fragment或View的功能,常用于实现页面滑动切换、引导页、轮播图等功能。 使用ViewPager需要以下几个步骤: 1.在布局文件添加ViewPager控件,如下: ```xml <androidx.viewpager.widget.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent"/> ``` 2.创建Adapter,继承自PagerAdapter或FragmentPagerAdapter,实现getItem()和getCount()方法,如下: ```java public class MyPagerAdapter extends PagerAdapter { private List<View> mViewList; public MyPagerAdapter(List<View> viewList) { mViewList = viewList; } @Override public int getCount() { return mViewList.size(); } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view == object; } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { View view = mViewList.get(position); container.addView(view); return view; } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView(mViewList.get(position)); } } ``` 3.将Adapter设置给ViewPager,如下: ```java ViewPager viewPager = findViewById(R.id.view_pager); MyPagerAdapter adapter = new MyPagerAdapter(mViewList); viewPager.setAdapter(adapter); ``` 4.(可选)设置ViewPager的滑动监听: ```java viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { // 页面滑动过程的回调 } @Override public void onPageSelected(int position) { // 页面选时的回调 } @Override public void onPageScrollStateChanged(int state) { // 页面滑动状态变化时的回调 } }); ``` 以上就是使用ViewPager的基本步骤。需要注意的是,ViewPager默认只会加载当前页和左右两侧的页,如果需要预加载更多页,可以使用setOffscreenPageLimit()方法设置预加载页数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值