Android Java HashMap错误:Java.lang.ClassCastException:Java.lang.Integer无法转换为Java.lang.String
我正在从JSONArray获取HashMap并将其发送到SQLite。它给了我:Android Java HashMap错误:Java.lang.ClassCastException:Java.lang.Integer无法转换为Java.lang.String,android,json,multithreading,sqlite,Android,Json,Multithreading,Sqlite,我正在从JSONArray获取HashMap并将其发送到SQLite。它给了我: java.lang.ClassCastException:java.lang.Integer不能转换为java.lang.String。HashMap转换问题。 类型为HashMap 以下是Logcat: 03-13 09:05:23.034 18810-18866/?W/System.err: java.lang.ClassCastException:无法将java.lang.Integer转换为 java.la
java.lang.ClassCastException:java.lang.Integer不能转换为java.lang.String。HashMap转换问题。
类型为HashMap
以下是Logcat:
03-13 09:05:23.034 18810-18866/?W/System.err:
java.lang.ClassCastException:无法将java.lang.Integer转换为
java.lang.String 03-13 09:05:23.034 18810-18866/?W/System.err:at
com.example.SQLITEDatabase.DatabaseHandle.InserBusinessInfo(DatabaseHandle.java:143)
03-13 09:05:23.042 18810-18866/? W/System.err:at
com.example.deals.NewUserDetailPage$fetchAdvertisions.doInBackground(NewUserDetailPage.java:283)
03-13 09:05:23.042 18810-18866/? W/System.err:at
com.example.deals.NewUserDetailPage$fetchAdvertisions.doInBackground(NewUserDetailPage.java:255)
03-13 09:05:23.046 18810-18866/? W/System.err:at
android.os.AsyncTask$2.call(AsyncTask.java:287)03-13 09:05:23.062
18810-18866/? W/System.err:at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
03-13 09:05:23.062 18810-18866/? W/System.err:at
java.util.concurrent.FutureTask.run(FutureTask.java:137)03-13
09:05:23.066 18810-18866/? W/System.err:at
android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)03-13
09:05:23.070 18810-18866/? W/System.err:at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
03-13 09:05:23.070 18810-18866/? W/System.err:at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
03-13 09:05:23.086 18810-18866/? W/System.err:at
java.lang.Thread.run(Thread.java:856)03-13 09:05:23.138 18810-18866/?
W/System.err:java.lang.RuntimeException:无法在内部创建处理程序
未调用活套的线程。准备()03-13 09:05:23.170
18810-18866/? W/System.err:at
android.os.Handler.(Handler.java:121)03-13 09:05:23.170
18810-18866/? W/System.err:at
android.widget.Toast$TN.(Toast.java:322)03-13 09:05:23.174
18810-18866/? W/System.err:at
android.widget.Toast.(Toast.java:91)03-13 09:05:23.186
18810-18866/? W/System.err:at
android.widget.Toast.makeText(Toast.java:238)03-13 09:05:23.186
18810-18866/? W/System.err:at
com.example.deals.NewUserDetailPage$fetchAdvertisions.doInBackground(NewUserDetailPage.java:285)
03-13 09:05:23.194 18810-18866/? W/System.err:at
com.example.deals.NewUserDetailPage$fetchAdvertisions.doInBackground(NewUserDetailPage.java:255)
03-13 09:05:23.206 18810-18866/? W/System.err:at
android.os.AsyncTask$2.call(AsyncTask.java:287)03-13 09:05:23.214
18810-18866/? W/System.err:at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
03-13 09:05:23.218 18810-18866/? W/System.err:at
java.util.concurrent.FutureTask.run(FutureTask.java:137)03-13
09:05:23.222 18810-18866/? W/System.err:at
android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)03-13
09:05:23.254 18810-18866/? W/System.err:at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
03-13 09:05:23.274 18810-18866/? W/System.err:at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
03-13 09:05:23.282 18810-18866/? W/System.err:at
java.lang.Thread.run(Thread.java:856)03-13 09:05:23.454 320-320/?
W/InputMethodManagerService:窗口已聚焦,忽略聚焦
收益:
com.android.internal.view.IInputMethodClient$Stub$Proxy@535c3eec
属性=空
您可以自由地将
Hashmap
转换为String
,完全没有冒犯之意。但您正在做的是,您有一个名为mapReceivedAdDetails
的映射,并且您正在尝试转换另一个未在snippetmapReceivedAd
中显示的变量
这样做而不是这样做
mapReceivedAd.toString();
Do
mapReceivedAdDetails.toString();
代码中的错误发生在哪里?发布整个堆栈跟踪。嗨,Sree krishna,谢谢你查看它。我正在做HashMap.toString();只是看看存储了哪些值。我的挑战如下,转换它。我首先将它从Int中提取出来存储在字符串HashMap中,然后在插入SQLite时将其转换回Int,insert.bindLong(1,Integer.parseInt(mapbusinesinfo.get(I.get)(“BusUserId”);insert.bindLong(2,Integer.parseInt(mapBusinessInfo.get(i.get)(“BusinessId”));使用
String.valueOf(integer)
将integer
转换回String
。你可能在做别的事情,它正在工作。在从JSONArray获取值时。将其更改为obj.get(“business_Id”),而不是obj.getInt(“business_Id”)。所以用get代替getInt。
insert.bindLong(1, Integer.parseInt(mapBusinessInfo.get(i).get("BusUserId")));
mapReceivedAd.toString();
mapReceivedAdDetails.toString();