Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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 数组在SQLite中未转换为字符串_Android_Arrays_Sqlite - Fatal编程技术网

Android 数组在SQLite中未转换为字符串

Android 数组在SQLite中未转换为字符串,android,arrays,sqlite,Android,Arrays,Sqlite,我试图从SQLite中删除一个值,并从数组中检索要删除的值 问题是:当我在delete语句中使用值时,它是以数组格式而不是字符串格式显示的 代码: 阵列畸变 ArrayList a=新的ArrayList(); 上面的代码populatestock.a是数组 但logcat是这样的: Delete from abc Where StockName = '[sdfd]' 但我需要 Delete from abc Where StockName = 'sdfd' 如何解决此问题?使用此选项获取A

我试图从SQLite中删除一个值,并从数组中检索要删除的值

问题是:当我在delete语句中使用值时,它是以数组格式而不是字符串格式显示的

代码:

阵列畸变 ArrayList a=新的ArrayList(); 上面的代码populatestock.a是数组

但logcat是这样的:

Delete from abc Where StockName = '[sdfd]'
但我需要

Delete from abc Where StockName = 'sdfd'

如何解决此问题?

使用此选项获取
ArrayList
中第一个位置的内容(如果populatestocks.a是您的ArrayList):

在代码中:

deletestock="Delete from "+ st.tablename + " Where "+ st.column3 + " = '" + populatestocks.a.get(0) + "'";

tl;dr
populatestocks.a
应该是
populatestocks.a[0]


您的问题意味着您有一个长度为1的数组,您希望字符串连接能够识别该数组并将其视为单个值。它不是这样工作的,因为即使只有一个元素,它仍然是一个数组,而不是一个值,并且被视为数组。

您可以尝试以下方法:

deletestock="Delete from "+ st.tablename + " Where "+ st.column3 + " = '"+String.valueOf(populatestocks.a).subString(1, String.valueOf(populatestocks.a).length()-1)+"'";

这将返回您需要的内容。

您正在声明一个ArrayList,因此需要使用get(index)而不是[]

因此,您的代码应该如下所示:

String.valueOf(populatestocks.a.get(0))

那么它应该是
String.valueOf(populatestocks.a[0])
谢谢您的回复,但是我在更改时遇到了这个错误
表达式的类型必须是数组类型,但除了arg格式之外,它还解析为“
(从问题中很难找到正确答案-请提供更多上下文),请使用
execSQL()
而不是
rawQuery()
用于删除。同样的问题是,当我从数组中检索值时,我得到的值是
[sdf]
,但我需要as
sdf
。。我怎样才能做到这一点谢谢你的回复,但我收到了这个错误
表达式的类型必须是数组类型,但它已解析为
。这是我的数组declaration`ArrayList a=new ArrayList()`您使用的是
数组列表
而不是
数组
。我更新了我的帖子来解决这个问题。谢谢你的回答,但效果不太好:(03-11 15:10:39.733:E/AndroidRuntime(4851):java.lang.StringIndexOutOfBoundsException:length=6;regionStart=1;regionLength=-1 03-11 15:10:39.733:E/AndroidRuntime(4851):at java.lang.String.StartAndLength(String.java:583)03-11 15:10:39.733:E/AndroidRuntime(4851):在java.lang.String.substring(String.java:1464)中,在我使用数组的大小而不是字符串的大小之前,现在它可以工作了。这可以工作了……)你能告诉我整个逻辑是什么吗?我刚才使用了你得到的字符串作为结果,我得到一个子字符串,从位置1开始,在位置
string.length()-1
结束。函数
subString(start,end)
返回一个子字符串,从字符串的起始位置开始,到结束位置end-1结束。所以我只是从数组的位置1得到子字符串,直到数组的位置length()-1。在数组[asds]中,位置1是
a
,位置长度()。清楚了吗?如果你有任何问题,请ask@Siva您使用的是集合还是数组?我想两者都会打印相同的内容。ArrayList是一个集合,而不是数组。如果您正在使用的是
populatestocks.a.get(0)
,请使用它。我的数组语法如下:
ArrayList a=new ArrayList()然后再说一遍,这不是一个数组。请不要称之为数组;这在Java中意味着其他东西。无论如何,如果您只有一个值,请执行
populatestocks.a.get(0)
deletestock="Delete from "+ st.tablename + " Where "+ st.column3 + " = '"+String.valueOf(populatestocks.a).subString(1, String.valueOf(populatestocks.a).length()-1)+"'";
String.valueOf(populatestocks.a.get(0))