使用布局充气填充的GridView [英] populating gridview using layout inflator
本文介绍了使用布局充气填充的GridView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图用填充一个LayoutInflator GridView控件。根据我的code是正确的,但我只得到一个空白屏幕输出......如果有人能告诉我什么我做错了,以及如何纠正它..在此先感谢
I am trying to populate a gridview using LayoutInflator.. According to me the code is correct but I am only getting a blank screen as output... if someone could tell me what am i doing wrong and how to rectify it.. Thanks in advance
Activity类
public class MultipleDocumentViewActivity extends Activity {
private LayoutInflater inflator = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
inflator = LayoutInflater.from(getApplicationContext());
GridView grid = (GridView)inflator.inflate(R.layout.main, null);
GridAdapter gAdapter = new GridAdapter(this);
grid.setAdapter(gAdapter);
setContentView(R.layout.main);
}
}
GridAdapter.java
public class GridAdapter extends BaseAdapter
{
private Context context;
private LayoutInflater layoutInflator = null;
private Integer[] mThumbnails = {R.drawable.kunfu1,R.drawable.kunfu2,R.drawable.kunfu3,R.drawable.kunfu4};
public GridAdapter(Context c)
{
context = c;
Log.d("Aditi","Constructor called");
}
public int getCount() {
return mThumbnails.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View grid, ViewGroup parent)
{
layoutInflator = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(grid == null)
{
layoutInflator = LayoutInflater.from(context);
grid = layoutInflator.inflate(R.layout.mdv_grid_item, null);
}
ImageView imageView = (ImageView)grid.findViewById(R.id.grid_item);
imageView.setImageResource(mThumbnails[position]);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
return grid;
}
}
**mdv_grid_item**
<ImageView android:id="@+id/grid_item"
android:layout_width="fill_parent" android:layout_height="270dp"
android:contentDescription="@string/desc">
</ImageView>
**main.xml**
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:horizontalSpacing="20dp" android:numColumns="3"
android:paddingLeft="40dp" android:paddingRight="40dp"
android:paddingTop="40dp" android:stretchMode="columnWidth"
android:verticalSpacing="20dp"
android:listSelector="#00000000"
android:id = "@+id/grid">
</GridView>
感谢很多提前
推荐答案
你应该改变你的适配器类:
you should change your adapter class:
public class GridAdapter extends BaseAdapter
{
private Context context;
private LayoutInflater layoutInflator;
private Integer[] mThumbnails
= {R.drawable.kunfu1,R.drawable.kunfu2,R.drawable.kunfu3,R.drawable.kunfu4};
public GridAdapter(Context c){
context = c;
layoutInflator = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return mThumbnails.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View grid, ViewGroup parent){
ImageView imageView;
if(grid == null) {
grid = layoutInflator.inflate(R.layout.mdv_grid_item, null);
imageView = (ImageView)grid.findViewById(R.id.grid_item);
grid.setTag(imageView);
}else{
imageView = (ImageView)grid.getTag();
}
imageView.setImageResource(mThumbnails[position]);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
return grid;
}
}
这篇关于使用布局充气填充的GridView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文