请选择 进入手机版 | 继续访问电脑版
  • 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

android - 将 String[] 传递给 Adapter 但未显示输出

[复制链接]
菜鸟教程小白 发表于 2022-12-9 06:51:28 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我将 String[] 和图像传递给图像网格的 Adapter 类。 请检查我的代码并让我知道错误应该在哪里,因为我没有收到任何错误和输出。由于程序正在运行,我在同一个适配器类中设置了 String[]

MainActivity

public class MainActivity extends AppCompatActivity {

public static String[] mThumbIds = {
        "http://10.0.2.2/e-stitch/img/1.gif",
        "http://10.0.2.2/e-stitch/img/1.gif",
        "http://10.0.2.2/e-stitch/img/1.gif",
        "http://10.0.2.2/e-stitch/img/1.gif",
        "http://10.0.2.2/e-stitch/img/1.gif",
        "http://10.0.2.2/e-stitch/img/1.gif",
};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ImageAdapter imageAdapter = new ImageAdapter (MainActivity.this);
    imageAdapter.setimag(mThumbIds,mThumbIds.length);

    final GridView gridview = (GridView) findViewById(R.id.gridview);
    gridview.setAdapter(new ImageAdapter(this));
    gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            //   Intent i = new Intent(getApplicationContext(), FullImageActivity.class);
            //   i.putExtra("id", position);
            //   startActivity(i);
        }
    });

}

图像适配器

 public class ImageAdapter extends BaseAdapter {
    private Context mContext;
    int imageTotal;
    public static String[] mThumbIds;

    public ImageAdapter(Context c) {
        mContext = c;
    }
    public void setimag(String[] mThumbIds,int count){
        this.mThumbIds = mThumbIds;
        this.imageTotal = count;
    }

    public int getCount() {
        return imageTotal;
    }

    @Override
    public String getItem(int position) {
        return mThumbIds[position];
    }

    public long getItemId(int position) {
        return 0;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) {
            imageView = new ImageView(mContext);
            imageView.setLayoutParams(new GridView.LayoutParams(480, 480));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(8, 8, 8, 8);
        } else {
            imageView = (ImageView) convertView;
        }
        String url = getItem(position);
        Picasso.with(mContext)
                .load(url)
                .placeholder(R.drawable.loader)
                .fit()
                .centerCrop().into(imageView);
        return imageView;
    }
}

请帮帮我,因为我是 android 新手



Best Answer-推荐答案


这是你出错的地方 gridview.setAdapter(new ImageAdapter(this)); ,而不是传递初始化的适配器,而是传递没有图像 id 的新适配器。

更正的代码

ImageAdapter imageAdapter = new ImageAdapter (MainActivity.this);
imageAdapter.setimag(mThumbIds,mThumbIds.length);

final GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(imageAdapter);

关于android - 将 String[] 传递给 Adapter 但未显示输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48545952/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap