为了账号安全,请及时绑定邮箱和手机立即绑定

一共添加了五个数据,但是模拟器有十个数据,两两 重复

一共添加了五个数据,但是模拟器有十个数据,两两 重复

正在回答

4 回答

注释掉getData();   //单独的这一行

因为在 simAdapter方法中又调用了一次

0 回复 有任何疑惑可以回复我~

 getData();
       simAdapter=new SimpleAdapter(MainActivity.this,getData(),R.layout.item_layout,new String[]{"image","text"},new int[]{R.id.IV,R.id.TV});


这个部分重复了,上面单独调用了一次,在simAdapter里又调用了一次

0 回复 有任何疑惑可以回复我~

package com.example.user.gridview;

import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;

public class MainActivity extends Activity implements AdapterView.OnItemClickListener{
   private GridView GV;
   private ArrayList<Map<String,Object>> datalist;
   private int[] icon={R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e};
   private String[] Str={"one","two","three","four","five"};
   private SimpleAdapter simAdapter;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       GV=(GridView) findViewById(R.id.GV);
//      准备数据源
//      新建适配器(SimpleAdapter)
//      GridView加载适配器
//      GridView配置事件监听器(OnItenClickListener)
       datalist=new ArrayList<Map<String,Object>>();
       getData();
       simAdapter=new SimpleAdapter(MainActivity.this,getData(),R.layout.item_layout,new String[]{"image","text"},new int[]{R.id.IV,R.id.TV});
       GV.setAdapter(simAdapter);
//      加载监听器
       GV.setOnItemClickListener(this);
   }


   private List<Map<String,Object>> getData() {
       for (int i = 0; i < icon.length; i++) {
           Map<String,Object> map=new HashMap<String,Object>();
           map.put("image",icon[i]);
           map.put("text",Str[i]);
           datalist.add(map);
           Log.e("00000000",icon[i]+""+Str[i]);
       }
       return datalist;
   }

   @Override
   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
       String data=GV.getItemAtPosition(position)+"";
       Toast.makeText(MainActivity.this,data,Toast.LENGTH_SHORT).show();
   }
}



这是我全部的主界面的代码,没有发现有重复的地方

0 回复 有任何疑惑可以回复我~

往上面看一下,显然你的生成adapter重复一次了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第二门课(第1季)
  • 参与学习       111138    人
  • 解答问题       1560    个

本课程由浅入深地带您学会Android的常用控件的开发和使用

进入课程

一共添加了五个数据,但是模拟器有十个数据,两两 重复

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号