package?com.songbuqi.skyking.listview;
import?android.support.v7.app.AppCompatActivity;
import?android.os.Bundle;
import?android.widget.ArrayAdapter;
import?android.widget.ListView;
import?android.widget.RelativeLayout;
import?android.widget.SimpleAdapter;
import?java.util.HashMap;
import?java.util.List;
import?java.util.Map;
public?class?MainActivity?extends?AppCompatActivity???{
??????private?ListView?listview;
??????private?ArrayAdapter?arrayAdapter;
??????private?SimpleAdapter?simpleAdapter;
??????private?List<Map<String,Object>>?datalist;
????@Override
????protected?void?onCreate(Bundle?savedInstanceState)?{
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.activity_main);
????????listview??=?(ListView)?findViewById(R.id.listview1);
???????//?String[]?data={"宋天健是羅錚的爸爸","宋天健是羅錚的爸爸","宋天健是羅錚的爸爸","宋天健是羅錚的爸爸"};
???????//?arrayAdapter?=new?ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data);
???????//?listview.setAdapter(arrayAdapter);
????????simpleAdapter?=?new?SimpleAdapter(this,getdata(),?R.layout.item,?new?String[]{"right","home"},new?int[]{R.id.right,R.id.home});
????????listview.setAdapter(simpleAdapter);
????}
????private?List<Map<String,Object>>?getdata(){
????????for(int?i=1;i<20;i=i++)?{
????????????Map<String,Object>?map?=?new?HashMap<String,Object>();
????????????map.put("home",R.drawable.ic2);
????????????map.put("right",R.id.right);
????????}
????????return?datalist;
????}
}
2016-10-01
2016-10-01
我找到原因了,你的思路沒有,就是for循環(huán)的最后一個(gè)條件寫錯(cuò)了,不是i=i++,是i++
2016-10-01
為什么你設(shè)置simpleAdapter的時(shí)候,new int[]{}用的是R.id.right,設(shè)置數(shù)據(jù)源,“right”鍵對(duì)應(yīng)的值也是R.id.right?
2016-10-01
請(qǐng)問你的R.id.right是是什么?是一串字符串?
2016-10-01
你好,你的程序中有兩個(gè)地方你沒有注意到
????1.你的dataList只是進(jìn)行了定義,卻忘記創(chuàng)建實(shí)例。你可以添加如下如遇:
????????dataList=new ArrayList<Map<String,Object>>();
????2.在你的getData()方法的循環(huán)內(nèi)沒有把每次循環(huán)創(chuàng)建出來的Map對(duì)象添加到dataList當(dāng)中,你可以在循環(huán)的最后加上這樣一條語(yǔ)句:
????????dataList.add(map);
這樣子應(yīng)該可以解決你內(nèi)容顯示不出來的問題,希望對(duì)你有用。