imageview-安卓,新建simpleAdapter报错,求大神看看

问题描述

安卓,新建simpleAdapter报错,求大神看看

在girdview中添加simpleAdapter,为什么新建SimpleAdapter的时候会报错?

我的代码如下:

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:orientation="vertical">

<GridView
    android:id="@+id/gridview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

</LinearLayout>

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".activity"
android:orientation="vertical">

<ImageView
    android:id="@+id/image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

</LinearLayout>

package com.example.test4;

import android.os.Bundle;
import android.widget.*;
import java.util.*;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

SimpleAdapter s=null;
GridView grid=null;
List<Map<String,Integer>> list=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    grid=(GridView)super.findViewById(R.id.gridview);
    initAdapter();
    grid.setAdapter(s);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

public void initAdapter()
{
    Map<String,Integer> map=new HashMap<String,Integer>();
    map.put("图片", R.drawable.a1);
    list.add(map);
    map.put("图片", R.drawable.a2);
    list.add(map);
    map.put("图片", R.drawable.a1);
    list.add(map);
    s=new SimpleAdapter(MainActivity.this,list,R.layout.imageview,new String[]{"图片"},new Integer[]{R.id.image});

}

}

其中,s=new SimpleAdapter.....那行被报错,我截张图:

应该就是说构造方法没这样的重载,明明就应该没错的吧,请问这里是怎么回事?应该怎么解决?

解决方案

你这样添加有问题,而且你最后那个不能用new Integer[]{},应该用new int[]{}.这样的。

你那个添加有问题。

像下面这样添加,然后把你SimpleAdapter初始化的“图片”改成"image"

 Map<String,Integer> maps1 = new HashMap<String,Integer>();
maps1.put("image",R.drawable.a1);
Map<String,Integer> maps2 = new HashMap<String,Integer>();
maps2.put("image",R.drawable.a2);
Map<String,Integer> maps3 = new HashMap<String,Integer>();
maps3.put("image",R.drawable.a3);
list.add(maps1);
list.add(maps2);
list.add(maps3);

解决方案二:

 List<Map<String,Integer>> list=null;

这行代码声明了List>对象,但你下面没有实例化此List>对象,所以应该在initAdapter()方法中实例化此对象,应在此方法内加入此行代码:

 list= new ArrayList<Map<String,Integer>>();

然后才能把Map添加到list对象中,说错请见谅!

解决方案三:

将代码;

s = new SimpleAdapter(MainActivity.this, list, R.layout.imageview, new String[]{"图片"}, new Integer[]{R.id.image});

改为:

s = new SimpleAdapter(MainActivity.this, list, R.layout.imageview, new String[]{"图片"}, new int[]{R.id.image});

因为SimpleAdapter的构造方法是:

public SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)

解决方案四:

你这样写好复杂,直接把new Integer[]{}改为newint[]{};
然后那个Map maps1 = new HashMap ();
maps1.put("image",R.drawable.a1);
maps1.put("image",R.drawable.a2);
maps1.put("image",R.drawable.a3);
list.add(maps1);
Map只要初始化一个就好了

时间: 2024-10-26 21:32:28

imageview-安卓,新建simpleAdapter报错,求大神看看的相关文章

myeclipse-新建maven项目报错,求大神帮帮我

问题描述 新建maven项目报错,求大神帮帮我 我用的是myeclipse2015 ,apache-maven-3.3.9,每当新建maven项目时报 错, An internal error occurred during: "Retrieving archetypes:". GC overhead limit exceeded, 一直报这个错误,无法创建,怎么才能解决,百度上的试了都不行,来个大神帮帮我 解决方案 把Eclipse的堆内存调大一点:http://jingyan.ba

Genymoation安装之后打开虚拟机报错求大神指点

问题描述 Genymoation安装之后打开虚拟机报错求大神指点 错误是这样的 求大神指点,谢谢 解决方案 多启动几次,如果还不行,就启动virtualbox,在里面看看对应的虚拟机是否正常可以启动,或者先关掉它

大数据-orcale大量数据分组查询报错求大神指点

问题描述 orcale大量数据分组查询报错求大神指点 对一个表数据进行分组查询,但是数据量太大了,当时是3000w条,跑着就报错了,数据库内部错误,也不是很懂.想请教下group by的时候是否数据量太多会报错,如果是它可以承受多大的数据量分组查询. 解决方案 肯定会报错,数据量大就会请求超时 解决方案二: 建议使用索引,给需要分组的字段加索引 解决方案三: 你可以试试根据你当前数据库的配置情况,进行分组查询的时候,使用多线程的方式进行查询 例如: select /*+ parallel(t,1

树形 递归-java 递归报错 求大神帮忙

问题描述 java 递归报错 求大神帮忙 private List<Post> getPostLower(List<Post> PostTops){ List<Post> postAll=new ArrayList<Post>(); // 上级 for(Post post:PostTops){ //查询到下级 List<Post> posts=basService.queryPostByParentId(post.getPostId()); //

mac 下编译 ffmpeg的 libaacplus-2.0.2 总是报错求大神解决办法,谁能教我再mac下编译ffmpeg也行

问题描述 mac 下编译 ffmpeg的 libaacplus-2.0.2 总是报错求大神解决办法,谁能教我再mac下编译ffmpeg也行 make[2]: Nothing to be done for `all'. Making all in frontend gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../src -g -O2 -c -o main.o main.c main.c:89:46: warning: data argument not

用的spring mvc 添加了分页 功能后一直报错 求大神解决

问题描述 用的spring mvc 添加了分页 功能后一直报错 求大神解决 org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver]Resolving exception from handler [com.app.controller.ManageController@185c0de]: java.lang.NumberFormatException: For input s

cocos2d x-在Xcode中安装cocos2d-x老报错求大神指教

问题描述 在Xcode中安装cocos2d-x老报错求大神指教 taorenwangtekiMacBook-Pro:~ taorenwang$ cd /Users/taorenwang/Desktop taorenwangtekiMacBook-Pro:Desktop taorenwang$ cd cocos2d-2.1rc0-x-2.1.3/ taorenwangtekiMacBook-Pro:cocos2d-2.1rc0-x-2.1.3 taorenwang$ ./install-templ

虚拟机下构架hadoop测试跑wordcount报错,求大神帮帮忙.

问题描述 虚拟机下构架hadoop测试跑wordcount报错,求大神帮帮忙. 用虚拟机虚拟一台namenode,三台datanode,配置完成可以运行起来,也可以在网页中查看状态,但是跑wordcount时出现了task id:attempt_1441184180788_0001 status:failed的错误,也没有抛出,实在没有办法,具体问题截屏如下,望大神们给予帮助 解决方案 http://www.cnblogs.com/madyina/p/3708153.html 解决方案二: 几台

ora-00119 报错-ORA-00119 报错 求大神

问题描述 ORA-00119 报错 求大神 oracle 11g for 64 求大神支招~ 解决方案 是不是Oracle服务没开?

node js-linux下安装node.js报错,求大神解决

问题描述 linux下安装node.js报错,求大神解决 目前正要部署应用到linux服务器上 在安装node.js时各种报错,首先是python版本问题,后来装了python2.7.5, 在执行./configure时,出现这个错误 ERROR:root:code for hash md5 was not found. Traceback (most recent call last): File "/usr/local/lib/python2.7/hashlib.py", line