开发者社区> 问答> 正文

android新建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.....那行被报错,我截张图:
screenshot
应该就是说构造方法没这样的重载,明明就应该没错的吧,请问这里是怎么回事?应该怎么解决?

展开
收起
爵霸 2016-05-27 08:17:45 2077 0
1 条回答
写回答
取消 提交回答
  • 你这样添加有问题,而且你最后那个不能用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);
    2019-07-17 19:16:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载