Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法将java.lang.String转换为java.util.HashMap异常_Android_String_Hashmap - Fatal编程技术网

Android 无法将java.lang.String转换为java.util.HashMap异常

Android 无法将java.lang.String转换为java.util.HashMap异常,android,string,hashmap,Android,String,Hashmap,我喜欢将所选项目值从ListView传递给另一个活动。我正在使用带有atributes idCity和nameCity的City类,并且我喜欢将所选城市的值传递给另一个活动 此代码正在抛出java.lang.ClassCastException:无法将java.lang.String转换为java.util.HashMap public ListView cities; ArrayList<City> cityList=new ArrayList<City>(); pr

我喜欢将所选项目值从ListView传递给另一个活动。我正在使用带有atributes idCity和nameCity的City类,并且我喜欢将所选城市的值传递给另一个活动 此代码正在抛出java.lang.ClassCastException:无法将java.lang.String转换为java.util.HashMap

public ListView cities;
ArrayList<City> cityList=new ArrayList<City>();

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.cities_view);
    Resources r = getResources();
    String[] c = r.getStringArray(R.array.cities);


    for(int i=0;i<c.length;i++)
    {
        cityList.add(new City(i,c[i]));
    }
    for(int i=0;i<c.length;i++)
    {
        System.out.println(cityList.get(i).idCity);
        System.out.println(cityList.get(i).nameCity);
    }

    cities = (ListView) findViewById(R.id.listCities);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, c);
    cities.setAdapter(adapter);



    File file = new File(Environment.getExternalStorageDirectory()
            .getAbsolutePath(), getString(R.string.exchangeOfficesFile));

    if (!file.exists()) {
        startService(new Intent(this, DownloadAsyncService.class));
    }


try{
    List<Map<String, String>> data = new ArrayList<Map<String, String>>();
    for (City c : cityList) {
        Map<String, String> map = new HashMap<String, String>(2);
        map.put("idCity", Integer.toString(c.getIdCity()));
        map.put("nameCity", c.getNameCity());

        data.add(map);
    }


    cities.setOnItemClickListener(new OnItemClickListener() {


        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {

            Intent intent = new Intent(getApplicationContext(),
                    CitiesDetails.class);

            HashMap<String,String> map=(HashMap<String, String>) parent.getItemAtPosition(position);

            intent.putExtra("idCity", map.get("idCity"));

            intent.putExtra("nameCity", map.get("nameCity"));



            startActivity(intent);
        }

    });

}catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
}
}
公共列表查看城市;
ArrayList cityList=新的ArrayList();
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.cities\U视图);
Resources r=getResources();
字符串[]c=r.getStringArray(r.array.cities);

对于(int i=0;i,您的数组适配器是一个字符串列表:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, c);
将其更改为:

String result = (String) parent.getItemAtPosition(position);

您的阵列适配器是字符串列表:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, c);
将其更改为:

String result = (String) parent.getItemAtPosition(position);

发布堆栈跟踪,错误发生在哪一行?发布堆栈跟踪,错误发生在哪一行?