我的简单应用程序无法使用此行:
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);
}
}
帮助。
答案 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
中的密钥获取值。
希望它有所帮助!!!