使用google第三方库后,gridview无法显示,无报错

使用google第三方库后,gridview无法显示,无报错

package com.example.gridview;

import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.widget.GridView;
import android.widget.TextView;

import com.example.gridview.adapter.GridAdapter4;
import com.example.gridview.model.ImageInfo;

import java.util.ArrayList;
import java.util.List;
/*
* 功能实现:使用GridView显示从网络下载的图片
* 1)新建类ImagInfo,包含图片下载地址imagePath、图片bitmap
* 2)新建适配器类GridAdapter4,包含ImagInfo类型的List对象imageInfoList
* 3)调入资源库, 使用google官方库访问网络并下载
* 4)把下载地址赋给imageInfoList (initData()函数)
* 5)GridView绑定适配器(以imageInfoList为参数)
*
* */
public class ExampleActivity4 extends Activity{
  private GridView gridView;
  private TextView textView;
 private   List<String> imgPathList;
 private  List<ImageInfo> imageInfoList;

   @Override
   protected void onCreate(@Nullable Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.example_activity4);
       initView();
       initData();
   }
   private void initData() {
   imgPathList=new ArrayList<String>();
       imgPathList.add("https://b-ssl.duitang.com/uploads/item/201701/29/20170129014507_NaLix.jpeg");
       imgPathList.add("http://img2.imgtn.bdimg.com/it/u=3980629563,3881837630&fm=21&gp=0.jpg");
       imgPathList.add("http://img5q.duitang.com/uploads/item/201505/08/20150508155052_XJaNW.jpeg");
       imgPathList.add("http://img4.duitang.com/uploads/item/201407/02/20140702105736_FdN5P.jpeg");
       imgPathList.add("http://img2.imgtn.bdimg.com/it/u=2866652161,3841912673&fm=21&gp=0.jpg");
       imgPathList.add("http://img4.imgtn.bdimg.com/it/u=883757693,2063816225&fm=21&gp=0.jpg");
       imgPathList.add("https://b-ssl.duitang.com/uploads/item/201607/21/20160721205624_B53r2.jpeg");
       imgPathList.add("http://zjimg.5054399.com/allimg/160815/14_160815161625_9.jpg");
       imgPathList.add("http://i-7.vcimg.com/trim/09ce7067d2467c54cf05bbd271ee3ec8430415/trim.jpg");
   imageInfoList=new ArrayList<ImageInfo>();
       int i;
   for(i=0;i<imgPathList.size();i++)
   {
       ImageInfo imageInfo=new ImageInfo();
//        把imagePathLis的地址传给imageInfo
       imageInfo.setImagePath(imgPathList.get(i));
       imageInfo.setText("第"+(i+1)+"张图");
       imageInfoList.add(imageInfo);
   }
   textView.setText("共有"+i+"张图");
//    建立适配器对象,imageInforList入参
       GridAdapter4 gridAdapter4=new GridAdapter4(this,imageInfoList);
       gridView.setAdapter(gridAdapter4);


   }

   private void initView() {
       gridView=findViewById(R.id.gridview4);
       textView=findViewById(R.id.tv_picgridview4);
   }


}

package com.example.gridview.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.example.gridview.R;
import com.example.gridview.model.ImageInfo;
import java.util.List;
public class GridAdapter4 extends BaseAdapter {
   private Context context;
   private  List<ImageInfo> imageInfoList;
//    private List<AppInfo>appInfoList;
   public GridAdapter4(Context context, List<ImageInfo> imageInfoList) {
       this.context = context;
       this.imageInfoList = imageInfoList;
   }
   @Override
   public int getCount() {
       return imageInfoList.size();
   }
   @Override
   public Object getItem(int position) {
       return imageInfoList.get(position);
   }
   @Override
   public long getItemId(int position) {
       return position;
   }
   @Override
   public View getView(int position, View convertView, ViewGroup parent) {
       ViewHolder viewHolder;
       if(convertView==null){
//            绑定item_gridview2给当前convertView
           convertView=View.inflate(context, R.layout.item_gridview3,null);
//            适配器viewHolder绑定convertView相应的view
           viewHolder=new ViewHolder();
           viewHolder.imageView=convertView.findViewById(R.id.iv_img);
           viewHolder.textView=convertView.findViewById(R.id.tv_picName);
           convertView.setTag(viewHolder);
       }else {
           viewHolder= (ViewHolder) convertView.getTag();
       }
      ImageInfo imageInfo=imageInfoList.get(position);
       viewHolder.textView.setText(imageInfo.getText());
//        使用google资源库下载网络图片并指定给viewholder,若不成功使用ic_launcher
       Glide.with(context).load(imageInfo.getImagePath()).into(viewHolder.imageView);

// 根据实际情况加载图片,若imageInfo无下载图片,则使用系统图标ic_launcher
//        if(imageInfo.getBitmap()==null){
//           viewHolder.imageView.setImageResource(R.mipmap.ic_launcher);
//        }else
//            viewHolder.imageView.setImageBitmap(imageInfo.getBitmap());
       return convertView;
   }
   public class ViewHolder{
       ImageView imageView;
       TextView textView;
   }

}

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你的布局文件中,GridView有没有使用stretchMode属性?

  • 慕运维0750787 提问者 #1
    用到了,现在的问题是,点击主页连接该Activity按钮无反应
    2019-01-10 15:17:17
  • irista23 回复 提问者 慕运维0750787 #2
    如果你已经跳转成功到ExampleActivity4界面了,但GridView显示空白,检查一下是否设置了stretchMode这个属性,这个属性只有在指定了columnWidth的时候才会有作用,如果指定了stretchMode而没有给columnWidth的值,则item不显示,就是宽为0。
    2019-01-10 15:23:07
  • 慕运维0750787 提问者 #3
    我检查到原因了,犯了低级错误,没有给按钮添加监听器。
    2019-01-10 15:29:50
提问者 慕运维0750787 2019-01-10 11:29:00

主页中,有链接到ExampleActivity4.class,为什么点击无反应。在Manifest.xml中已加载ExampleActivity4。gralde文件中已添加   implementation 'com.github.bumptech.glide:glide:4.8.0'  ,整个运行没有报错。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Android网络操作与数据存储2018版
  • 参与学习           人
  • 提交作业       307    份
  • 解答问题       1613    个

本专题是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理。介绍了Android内外部文件存储、轻量级数据库SQLite的使用。利用屏幕适配、状态保持、百度地图解决实际问题。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师