在synctask类android中显示listview

在synctask类android中显示listview,android,Android,我是初学者。我想在asyncTask中显示一个listview,所以我有这段代码,但我不知道下面这行怎么会出错: ListAdapter adapter =new SimpleAdapter(this, result,android.R.layout.simple_list_item_1, new String[] {"planet"}, new int[] {android.R.id.text1}); 你能让我修一下吗 我的代码: public class MainActivity ext

我是初学者。我想在asyncTask中显示一个listview,所以我有这段代码,但我不知道下面这行怎么会出错:

ListAdapter adapter =new SimpleAdapter(this, result,android.R.layout.simple_list_item_1, new String[] {"planet"}, new int[] {android.R.id.text1});
你能让我修一下吗

我的代码:

 public class MainActivity extends Activity {
    List<Map<String, String>> planetsList;
    ListAdapter simpleAdpt;
    ListView lv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv=(ListView) this.findViewById(R.id.listView1);
        planetsList = new ArrayList<Map<String,String>>();

        initList();
        simpleAdpt = new SimpleAdapter(this, planetsList, android.R.layout.simple_list_item_1, new String[] {"planet"}, new int[] {android.R.id.text1});

        lv.setAdapter(simpleAdpt);
    }


     private void initList() {
            // We populate the planets into planetslist

            planetsList.add(createPlanet("planet", "Mercury"));
            planetsList.add(createPlanet("planet", "Venus"));
            planetsList.add(createPlanet("planet", "Mars"));
            planetsList.add(createPlanet("planet", "Jupiter"));
            planetsList.add(createPlanet("planet", "Saturn"));
            planetsList.add(createPlanet("planet", "Uranus"));
            planetsList.add(createPlanet("planet", "Neptune"));

    }

     private HashMap<String, String> createPlanet(String key, String name) {
            HashMap<String, String> planet = new HashMap<String, String>();
            planet.put(key, name);

            return planet;
    }

    @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;
    }

}
公共类MainActivity扩展活动{
列表飞机列表;
ListAdapterSimpleAdpt;
ListView lv;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv=(ListView)this.findViewById(R.id.listView1);
planetsList=newarraylist();
initList();
simpleAdpt=new SimpleAdapter(这个,planetsList,android.R.layout.simple_list_item_1,新字符串[]{“planet”},新int[]{android.R.id.text1});
低压设置适配器(simpleAdpt);
}
私有void initList(){
//我们将行星填入行星列表
添加(创建行星(“行星”、“水星”);
添加(创建行星(“行星”、“金星”);
添加(创建行星(“行星”、“火星”);
添加(创建行星(“行星”、“木星”);
添加(创建行星(“行星”、“土星”);
添加(创建行星(“行星”、“天王星”);
添加(创建行星(“行星”、“海王星”);
}
私有HashMap createPlanet(字符串键、字符串名称){
HashMap planet=新的HashMap();
planet.put(键、名称);
返回行星;
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
}

我猜您正在使用异步任务中的“this”引用您的活动。请尝试以下方法:

ListAdapter adapter =new SimpleAdapter(MainActivity.this, result,android.R.layout.simple_list_item_1, new String[] {"planet"}, new int[] {android.R.id.text1});

post logcat有错误吗?将simpleAdpt的类型更改为SimpleAdapter而不是ListAdapter。post异步任务代码