我是靠谱客的博主 搞怪月光,最近开发中收集的这篇文章主要介绍java hashmap import,HashMap中不能被转换为java.lang.String,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

I am trying to get values from a list view. The list view is set by an array list of hashmap type. So , if I am trying to get the values in a string I get the error HashMap cannot be cast to java.lang.string

details1.java

package com.example.festipedia_logo;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import org.apache.http.NameValuePair;

import org.apache.http.message.BasicNameValuePair;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import com.actionbarsherlock.app.SherlockFragment;

import com.actionbarsherlock.app.SherlockListFragment;

//import com.example.festipedia_logo.Searchpage.LoadAllProducts;

//import com.example.connection.disp;

import android.app.Activity;

import android.app.Fragment;

import android.app.ListActivity;

import android.app.ProgressDialog;

import android.content.Intent;

import android.os.AsyncTask;

import android.os.Bundle;

import android.support.v4.app.FragmentTransaction;

import android.util.Log;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ListAdapter;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import android.widget.Spinner;

import android.widget.TextView;

import android.widget.Toast;

public class details1 extends SherlockFragment {

ArrayAdapter adapter;

String[] city;

// Progress Dialog

private ProgressDialog pDialog;

// Creating JSON Parser object

JSONParser jParser = new JSONParser();

EditText b;

ArrayList> productsList;

// url to get all products list

private static String url_all_products = "http://192.168.43.77/festipedia/get_all_products.php";

Button a;

// JSON Node names

private static final String TAG_SUCCESS = "success";

private static final String TAG_PRODUCTS = "products";

private static final String TAG_NAME = "eventname";

// products JSONArray

JSONArray products = null;

ListView l;

Spinner spinner;

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//setContentView(R.layout.second);

View rootView = inflater.inflate(R.layout.home2, container, false);

// setContentView(R.layout.all_products);

l = (ListView) rootView.findViewById(R.id.list);

// Hashmap for ListView

productsList = new ArrayList>();

new LoadAllProducts().execute();

l.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView> parent, View view,

int position, long id) {

// Do something

// String itemValue = (String) l.getItemAtPosition(position);

// Intent intent = new Intent(getActivity().getBaseContext(),

// MainActivity.class);

// intent.putExtra("message", itemValue);

// getActivity().startActivity(intent);

// Bundle args = new Bundle();

// args.putString("doctor_id",itemValue);

// details1 newFragment = new details1 ();

// newFragment.setArguments(args);

//String str = ((TextView)childView).getText().toString();

//MainActivity ob=new MainActivity();

// ListView Clicked item index

int itemPosition = position;

// ListView Clicked item value

String itemValue = (String) l.getItemAtPosition(position);

final FragmentTransaction ft = getFragmentManager().beginTransaction();

ft.replace(R.id.content_frame,new SlidetabTesting(itemValue) , "Fest Content");

ft.commit();

}

});

return rootView;

}

/**

* Background Async Task to Load all product by making HTTP Request

* */

class LoadAllProducts extends AsyncTask {

@Override

protected void onPreExecute() {

super.onPreExecute();

pDialog = new ProgressDialog(getActivity());

pDialog.setMessage("Loading products. Please wait...");

pDialog.setIndeterminate(false);

pDialog.setCancelable(false);

pDialog.show();

}

/**

* getting All products from url

* */

protected String doInBackground(String... args) {

// Building Parameters

List params = new ArrayList();

// getting JSON string from URL

JSONObject json = jParser.makeHttpRequest(url_all_products, "GET", params);

// Log.d("All Products: ", json.toString());

try {

// Checking for SUCCESS TAG

int success = json.getInt(TAG_SUCCESS);

if (success == 1) {

// products found

// Getting Array of Products

products = json.getJSONArray(TAG_PRODUCTS);

// looping through All Products

for (int i = 0; i < products.length(); i++) {

JSONObject c = products.getJSONObject(i);

// Storing each json item in variable

String name = c.getString(TAG_NAME);

//l.setFilterText(id);

// creating new HashMap

HashMap map = new HashMap();

// adding each child node to HashMap key => value

map.put(TAG_NAME, name);

// adding HashList to ArrayList

productsList.add(map);

}

} else {

// no products found

// Launch Add New product Activity

}

} catch (JSONException e) {

e.printStackTrace();

}

return null;

}

/**

* After completing background task Dismiss the progress dialog

* **/

protected void onPostExecute(String file_url) {

// dismiss the dialog after getting all products

pDialog.dismiss();

// updating UI from Background Thread

getActivity().runOnUiThread(new Runnable() {

public void run() {

/**

* Updating parsed JSON data into ListView

* */

ListAdapter adapter = new SimpleAdapter(

getActivity(), productsList,

R.layout.list_item, new String[] {

TAG_NAME},

new int[] { R.id.name });

// updating listview

l.setAdapter(adapter);

}

});

}

}

}

LOGCAT

03-30 20:03:43.341: E/ViewRootImpl(8395): sendUserActionEvent() mView == null

03-30 20:03:47.111: E/ViewRootImpl(8395): sendUserActionEvent() mView == null

03-30 20:03:49.416: E/AndroidRuntime(8395): FATAL EXCEPTION: main

03-30 20:03:49.416: E/AndroidRuntime(8395): Process: com.example.festipedia_logo, PID: 8395

03-30 20:03:49.416: E/AndroidRuntime(8395): java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.String

03-30 20:03:49.416: E/AndroidRuntime(8395): at com.example.festipedia_logo.details1$1.onItemClick(details1.java:103)

03-30 20:03:49.416: E/AndroidRuntime(8395): at android.widget.AdapterView.performItemClick(AdapterView.java:308)

03-30 20:03:49.416: E/AndroidRuntime(8395): at android.widget.AbsListView.performItemClick(AbsListView.java:1483)

03-30 20:03:49.416: E/AndroidRuntime(8395): at android.widget.AbsListView$PerformClick.run(AbsListView.java:3485)

03-30 20:03:49.416: E/AndroidRuntime(8395): at android.widget.AbsListView$3.run(AbsListView.java:4843)

03-30 20:03:49.416: E/AndroidRuntime(8395): at android.os.Handler.handleCallback(Handler.java:733)

03-30 20:03:49.416: E/AndroidRuntime(8395): at android.os.Handler.dispatchMessage(Handler.java:95)

03-30 20:03:49.416: E/AndroidRuntime(8395): at android.os.Looper.loop(Looper.java:157)

03-30 20:03:49.416: E/AndroidRuntime(8395): at android.app.ActivityThread.main(ActivityThread.java:5356)

03-30 20:03:49.416: E/AndroidRuntime(8395): at java.lang.reflect.Method.invokeNative(Native Method)

03-30 20:03:49.416: E/AndroidRuntime(8395): at java.lang.reflect.Method.invoke(Method.java:515)

03-30 20:03:49.416: E/AndroidRuntime(8395): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)

03-30 20:03:49.416: E/AndroidRuntime(8395): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)

03-30 20:03:49.416: E/AndroidRuntime(8395): at dalvik.system.NativeStart.main(Native Method)

Is there any way by which I will be able to retrieve values

解决方案

java.lang.ClassCastException: java.util.HashMap cannot be cast to

java.lang.String

This line is the problem

String itemValue = (String) l.getItemAtPosition(position);

Change to

l.setOnItemClickListener(new OnItemClickListener() {

@Override

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

HashMap map =(HashMap)l.getItemAtPosition(position);

String value = map.get(TAG_SUCCESS);

Sting products = map.get(TAG_PRODUCTS);

String name= map.get(TAG_NAME);

... // rest of the code

}

最后

以上就是搞怪月光为你收集整理的java hashmap import,HashMap中不能被转换为java.lang.String的全部内容,希望文章能够帮你解决java hashmap import,HashMap中不能被转换为java.lang.String所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部