Java 安卓寻呼机适配器和gridView。梅托德
我正在尝试在我的Android应用程序中使用带有水平滚动的简单PagerAdapter。我尝试在页面中设置一个包含图像的网格。最简单的方法是什么 我尝试过这样的东西(它不起作用,: 这是我的主要活动Java 安卓寻呼机适配器和gridView。梅托德,java,android,gridview,pager,onitemclicklistener,Java,Android,Gridview,Pager,Onitemclicklistener,我正在尝试在我的Android应用程序中使用带有水平滚动的简单PagerAdapter。我尝试在页面中设置一个包含图像的网格。最简单的方法是什么 我尝试过这样的东西(它不起作用,: 这是我的主要活动 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); createHer
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
createHeroList();
LayoutInflater inflater = LayoutInflater.from(this);
List<View> pages = new ArrayList<View>();
View page = inflater.inflate(R.layout.page, null);
pages.add(page);
page = inflater.inflate(R.layout.page, null);
pages.add(page);
page = inflater.inflate(R.layout.page, null);
pages.add(page);
SamplePagerAdapter pagerAdapter = new SamplePagerAdapter(pages);
ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(pagerAdapter);
viewPager.setCurrentItem(1);
setContentView(viewPager);
initImageLoader(getApplicationContext());
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
createHeroList();
LayoutFlater充气机=LayoutFlater.from(本机);
列表页=新建ArrayList();
查看页面=充气机。充气(R.layout.page,空);
页面。添加(第页);
页面=充气机。充气(R.layout.page,空);
页面。添加(第页);
页面=充气机。充气(R.layout.page,空);
页面。添加(第页);
SamplePagerAdapter pagerAdapter=新的SamplePagerAdapter(页);
ViewPager ViewPager=(ViewPager)findViewById(R.id.pager);
viewPager.setAdapter(pagerAdapter);
viewPager.setCurrentItem(1);
setContentView(viewPager);
initImageLoader(getApplicationContext());
}
这是我的图像适配器
public class ImageAdapter extends BaseAdapter {
ImageLoader imageLoader = ImageLoader.getInstance();
private Context mContext;
ArrayList<String> HeroList;
String[] imageUrls;
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View grid;
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.ic_stub)
.showImageForEmptyUri(R.drawable.ic_empty)
.showImageOnFail(R.drawable.ic_error).cacheInMemory()
.cacheOnDisc().bitmapConfig(Bitmap.Config.RGB_565).build();
if (convertView == null) {
grid = new View(mContext);
// LayoutInflater inflater = getLayoutInflater();
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
grid = inflater.inflate(R.layout.cellgrid, parent, false);
} else {
grid = (View) convertView;
}
ImageView imageView = (ImageView) grid.findViewById(R.id.imagepart);
TextView textView = (TextView) grid.findViewById(R.id.textpart);
imageLoader.displayImage(imageUrls[position], imageView, options);
textView.setText(HeroList.get(position));
return grid;
}
}
公共类ImageAdapter扩展了BaseAdapter{
ImageLoader ImageLoader=ImageLoader.getInstance();
私有上下文;
ArrayList HeroList;
字符串[]图像URL;
//为适配器引用的每个项目创建新的ImageView
公共视图getView(int位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
视图网格;
DisplayImageOptions=new DisplayImageOptions.Builder()
.showtubimage(R.drawable.ic_存根)
.showImageForEmptyUri(R.drawable.ic_empty)
.showImageOnFail(R.drawable.ic_错误).cacheInMemory()
.cacheOnDisc().bitmapConfig(Bitmap.Config.RGB_565).build();
if(convertView==null){
网格=新视图(mContext);
//LayoutInflater充气机=getLayoutInflater();
LayoutFlater充气器=(LayoutFlater)mContext
.getSystemService(上下文布局\充气机\服务);
网格=充气机。充气(R.layout.cellgrid,父项,false);
}否则{
网格=(视图)转换视图;
}
ImageView ImageView=(ImageView)grid.findViewById(R.id.imagepart);
TextView TextView=(TextView)grid.findViewById(R.id.textpart);
displayImage(ImageURL[position],imageView,选项);
setText(HeroList.get(position));
返回网格;
}
}
还有我的寻呼机
public class SamplePagerAdapter extends PagerAdapter{
List<View> pages = null;
ArrayAdapter<String> adapter;
ArrayList<String> NamesList = new ArrayList<String>();
int HeroCount = 98;
ImageLoader imageLoader = ImageLoader.getInstance();
String[] imageUrls;
public SamplePagerAdapter(List<View> pages){
this.pages = pages;
}
@Override
public Object instantiateItem(View collection, int position){
View v = pages.get(position);
GridView gridview = (GridView) v.findViewById(R.id.gridview);
Resources myResources = v.getResources();
imageUrls = myResources.getStringArray(R.array.Urls);
gridview.setAdapter(new ImageAdapter(v.getContext()));
gridview.setOnItemClickListener(gridviewOnItemClickListener);
((ViewPager) collection).addView(v, 0);
return v;
}
private GridView.OnItemClickListener gridviewOnItemClickListener = new GridView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
// TODO Auto-generated method stub
// Sending image id to FullScreenActivity
Intent i = new Intent(v.getContext(),
HeroInformation.class);
i.putExtra("HeroName", NamesList.get(position));
i.putExtra("HeroUrl", imageUrls[position]);
i.putExtra("HeroNum", position);
startActivity(i);
}
};
}
public类SamplePagerAdapter扩展了PagerAdapter{
列表页=空;
阵列适配器;
ArrayList NamesList=新的ArrayList();
int HeroCount=98;
ImageLoader ImageLoader=ImageLoader.getInstance();
字符串[]图像URL;
公共样本页雷达(列表页){
this.pages=页面;
}
@凌驾
公共对象实例化项(视图集合,int位置){
视图v=页面。获取(位置);
GridView GridView=(GridView)v.findviewbyd(R.id.GridView);
Resources myResources=v.getResources();
ImageURL=myResources.getStringArray(R.array.URL);
setAdapter(新的ImageAdapter(v.getContext());
setOnItemClickListener(gridviewOnItemClickListener);
((ViewPager)集合).addView(v,0);
返回v;
}
private GridView.OnItemClickListener gridviewOnItemClickListener=新建GridView.OnItemClickListener(){
@凌驾
公共控件单击(AdapterView父对象、视图v、内部位置、,
长id){
//TODO自动生成的方法存根
//正在向FullScreenActivity发送图像id
意图i=新意图(v.getContext(),
信息类);
i、 putExtra(“HeroName”,NamesList.get(position));
i、 putExtra(“HeroUrl”,ImageURL[位置]);
i、 putExtra(“HeroNum”,位置);
星触觉(i);
}
};
}
你能看到这个链接吗?我想它可以帮助你。太多的代码无法解析。到底发生了什么?有什么问题吗?有日志吗?