java - 在gridview中设置按钮和图像视图以及如何设置它们中的每一个监听器
问题描述
嗨,伙计们,我需要你的帮助。我想在gridview中设置listner imageview和button,当我点击imageview应用程序应该显示带有图像的对话框,当我点击按钮应用程序应该做一些事情。
像这样:
解决方案
您需要使用带有 ImageView 和 Button 的自定义 UI 为您的 GridView 创建自定义适配器,然后在 getVieew(){} 中,您需要为图像和按钮创建点击侦听器,您可以在位置的帮助下执行您的操作你的数组列表。
在这里我发布演示适配器供您参考:
在这里您可以将 TextView 更改为 Button。
public class CustomAdapter extends BaseAdapter{
String [] result;
Context context;
int [] imageId;
private static LayoutInflater inflater=null;
public CustomAdapter(MainActivity mainActivity, String[] prgmNameList, int[] prgmImages) {
// TODO Auto-generated constructor stub
result=prgmNameList;
context=mainActivity;
imageId=prgmImages;
inflater = ( LayoutInflater )context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return result.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public class Holder
{
TextView tv;
ImageView img;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Holder holder=new Holder();
View rowView;
rowView = inflater.inflate(R.layout.program_list, null);
holder.tv=(TextView) rowView.findViewById(R.id.textView1);
holder.img=(ImageView) rowView.findViewById(R.id.imageView1);
holder.tv.setText(result[position]);
holder.img.setImageResource(imageId[position]);
rowView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(context, "You Clicked "+result[position], Toast.LENGTH_LONG).show();
}
});
return rowView;
}
}
推荐阅读
- github-actions - 如何查看 Github CI 运行中出了什么问题
- c++ - 让一个类的实例搜索另一个类中的数组
- azure - Azure 应用注册 - 订阅下的 IAM 不显示我的应用
- android - 为什么单击 Google 登录按钮时屏幕会变暗,我们如何用进度条替换此行为?
- asp.net-core - 在 Asp.NET Core GRPC 客户端中读取响应标头?
- node.js - 我已经在我的系统上安装了 NODEjs,但是当我检查 nodejs 版本时,它没有给我版本。我应该怎么办?
- c++ - 将数组传递给gtest中的参数化测试
- powershell - 在powershell中使用export-csv命令时查询csv文件的格式
- indexing - 如何为不存储值本身的类型实现 IndexMut
- php - Vue 2.6.11 在 Laravel 7 上无法正常工作