我正在尝试从sqlite中删除一个值,我正在重新检索要从数组中删除的值。
这是整个问题,因为当我在delete语句中使用它时,它以数组格式而不是String格式显示。
代码:
deletestock="Delete from "+ st.tablename + " Where "+ st.column3 + " = '"+String.valueOf(populatestocks.a)+"'";
System.out.println(deletestock);
//Database.getInstance(getApplicationContext()).getWritableDatabase().delete(st.tablename, st.column3 + "=" + abc, null);
Database.getInstance(getApplicationContext()).getWritableDatabase().rawQuery(deletestock, null);
数组解析 ArrayList a = new ArrayList(); 上面的代码populatestock.a是数组
但是logcat是这样的:
Delete from abc Where StockName = '[sdfd]'
但我需要
Delete from abc Where StockName = 'sdfd'
请帮我解决此问题
答案 0 :(得分:2)
你可以试试这个:
deletestock="Delete from "+ st.tablename + " Where "+ st.column3 + " = '"+String.valueOf(populatestocks.a).subString(1, String.valueOf(populatestocks.a).length()-1)+"'";
应该返回你需要的东西。
答案 1 :(得分:0)
使用它来获取ArrayList
中第一个位置的内容(如果populatestocks.a是你的ArrayList):
populatestocks.a.get(0)
你的代码中的:
deletestock="Delete from "+ st.tablename + " Where "+ st.column3 + " = '" + populatestocks.a.get(0) + "'";
答案 2 :(得分:0)
tl; dr populatestocks.a
应为populatestocks.a[0]
您的问题意味着您有一个长度为1的数组,并且您希望字符串连接能够识别它并将其视为单个值。它不会像这样工作,因为即使只有一个元素,它仍然是一个数组,而不是一个值,并被视为这样。
答案 3 :(得分:0)
您正在声明一个ArrayList,因此您需要使用get(index)而不是[]。
因此,您的代码应如下所示:
String.valueOf(populatestocks.a.get(0))