Java GridView包含4项android
我正在尝试制作一个gridview,因为它更适合于更多的设备。我已经尝试在interface builder中添加我的按钮(作为ImageView,因为我将它们添加为ImageButtons大小不好),结果显示在该屏幕中: 有谁能帮我在GridView中制作这个,完全相同,但在所有设备上都兼容 提前谢谢 这是ImageAdapter:Java GridView包含4项android,java,android,gridview,uiimageview,Java,Android,Gridview,Uiimageview,我正在尝试制作一个gridview,因为它更适合于更多的设备。我已经尝试在interface builder中添加我的按钮(作为ImageView,因为我将它们添加为ImageButtons大小不好),结果显示在该屏幕中: 有谁能帮我在GridView中制作这个,完全相同,但在所有设备上都兼容 提前谢谢 这是ImageAdapter: public class ImageAdapter extends BaseAdapter { private Context context; private
public class ImageAdapter extends BaseAdapter {
private Context context;
private final String[] buttonValues;
public ImageAdapter(Context context, String[] buttonValues) {
this.context = context;
this.buttonValues = buttonValues;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
if (convertView == null) {
gridView = new View(context);
// get layout from mobile.xml
gridView = inflater.inflate(R.layout.mobile, null);
// set image based on selected text
ImageView imageView = (ImageView) gridView
.findViewById(R.id.grid_item_image);
String button = buttonValues[position];
if (button.equals("homework")) {
imageView.setImageResource(R.drawable.homework);
} else if (button.equals("schedule")) {
imageView.setImageResource(R.drawable.schedulebut);
} else if (button.equals("planner")) {
imageView.setImageResource(R.drawable.plannerbut);
} else {
imageView.setImageResource(R.drawable.settingsbut);
}
} else {
gridView = (View) convertView;
}
return gridView;
}
@Override
public int getCount() {
return buttonValues.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
}
这是我在onCreate中的方法:
static final String[] MOBILE_OS = new String[] { "Homework", "Schedule",
"Planner", "Settings" };
private void setGridView() {
gridView = (GridView) findViewById(R.id.gridView1);
gridView.setAdapter(new ImageAdapter(this, MOBILE_OS));
gridView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Toast.makeText(getApplicationContext(), "LOL!", Toast.LENGTH_SHORT).show();
}
});
}
static final String[]MOBILE_OS=新字符串[]{“家庭作业”、“日程安排”,
“规划器”、“设置”};
私有void setGridView(){
gridView=(gridView)findViewById(R.id.gridView1);
setAdapter(新的ImageAdapter(这个是MOBILE_OS));
setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、,
内部位置,长id){
Toast.makeText(getApplicationContext(),“LOL!”,Toast.LENGTH\u SHORT.show();
}
});
}
由于您尝试使用的是2X2网格,并且只有4个元素,因此请使用android:numColumns=“2”
作为GridView的属性
另外,还有这个很棒的
仅在网格中实现图像的代码段:
public class ImageAdapter extends BaseAdapter {
private Context context;
public ImageAdapter(Context context) {
this.context = context;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
if (convertView == null) {
gridView = new View(context);
// get layout from mobile.xml
gridView = inflater.inflate(R.layout.mobile, null);
// set image based on selected text
ImageView imageView = (ImageView) gridView
.findViewById(R.id.grid_item_image);
if (mobile.equals("Windows")) {
imageView.setImageResource(R.drawable.windows_logo);
} else if (mobile.equals("iOS")) {
imageView.setImageResource(R.drawable.ios_logo);
} else if (mobile.equals("Blackberry")) {
imageView.setImageResource(R.drawable.blackberry_logo);
} else {
imageView.setImageResource(R.drawable.android_logo);
}
} else {
gridView = (View) convertView;
}
return gridView;
}
@Override
public int getCount() {
return mobiles.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
}
编辑:您在所有按钮中获得的图像都相同,因为您正在匹配在不同情况下编写的字符串。(你在一个地方使用“家庭作业”,在另一个地方使用“家庭作业”)
因此,使用
static final String[]MOBILE_OS=new String[]{“家庭作业”、“日程安排”、“计划器”、“设置”}代码>,它可以正常工作。要获得固定大小,您可以添加
android:layout_height=“”
android:layout_width=“”
例如:
android:layout\u height=“100dp”
android:layout_width=“200dp”
在按钮标签中,您仍然可以按照本教程操作。只需从每个子元素中删除TextView,您将只获得图像。我已编辑了我的答案,并添加了代码以仅显示图像。Rest与我给你的教程相同。好吧,我相信如果你在问题中发布你的代码,每个人都会看到,如果我无法解决你的问题,你会得到更多帮助。发现错误。您没有正确匹配案例。使用static final String[]MOBILE_OS=新字符串[]{“家庭作业”、“日程安排”、“计划器”、“设置”}代码>谢谢,成功了!现在我只需要用我自己制作的按钮设置onClickListeners,我怎么能轻松实现它们呢!再次非常感谢您对我的帮助;)谢谢,但是我用Java而不是XML来定义我的按钮,所以也许我可以给GridView指定一些大小?