使用SimpleAddapter的简单应用程序不起作用?

时间:2016-01-03 16:35:16

标签: java android

我的简单应用程序无法使用此行:

lsview.setAdapter(listadapter);

但是在日志中没有关于错误的消息。如果没有这条线,它就会起作用。如果我使用ArrrayAdapter为我的ListView它工作。我不知道它是什么!当我使用debbuger时,我的应用程序崩溃在Looper.java中。但在日志中没有关于它的消息。

代码:

public class Main extends Activity{
    public int [] val=new int[]{41,24,78,12,56,92};
    public ArrayList<Map<String,Object>> listval;
    public Map<String,Object> maplist;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listval=new ArrayList<Map<String,Object>>(val.length);
        for(int i=0;i<val.length;i++){
            maplist=new HashMap<String,Object>();
            maplist.put("ll",val[i]);
            maplist.put("pb", val[i]);
            maplist.put("Text", "Day " + i + ": " + val[i] + "%");
            listval.add(maplist);
        }
        String from[]=new String[]{"ll","pb","Text"};
        int[] to=new int[]{R.id.llLoad,R.id.pbLoad,R.id.tvLoad};
        SimpleAdapter listadapter=new SimpleAdapter(this,listval,R.layout.item,from,to);
        //listadapter.setViewBinder(new MySimpleViewBinder());
        ListView lsview=(ListView)findViewById(R.id.listView);
       lsview.setAdapter(listadapter);
    }

}

帮助。

1 个答案:

答案 0 :(得分:-1)

您在String[]中使用相同的密钥以获取值的事实本身并不起作用。替换这个:

String from[]=new String[]{"ll","pb","Text"};

用这个:

String from[]=new String[]{maplist.get("ll").toString(),maplist.get("pb").toString(),maplist.get("Text").toString()};

您必须根据HashMap中的密钥获取值。 希望它有所帮助!!!