2014-06-06 49 views
1

我试图从Mainactivity传递一个字符串到databaseadapter类更新列一个带有string(其与string代替int指定)的sqlite但实现db.update()只适用于int使用字符串传递给适配器,而不是一个字符串

一)在mainactivity,对于int

Integer jacky = 78; 
myDb.updateK(jacky); 

b)中在mainactivity,弦乐

String jackie = "jacko"; 
myDb.updateK(jackie); 

在databaseadapter

String cup = "_id = 1"; 
//since jack doesn't have to be jacky or jackie, and can be mary 
public void updateK(int mary){    
ContentValues tree = new ContentValues(); 
tree.put("columnone", mary); 
db.update("TableOne", tree, cup, null); 
} 

在上面的情况下,仅情况a)在使用int时工作,而情况b)使用字符串jacko不起作用。有没有办法解决这个问题,并将字符串从mainactivity传递到databaseadapter

正如你可能会说的,我是新来的android,我很欣赏你们可以给我的任何指针。

+0

你为什么要调用'myDb.updateK(jackie);'因为你定义的方法只接受int'public void updateK(int mary){'? –

+0

我知道。我如何使用myDb.updateK()而不是int的字符串? – user3492802

+0

检查我的答案我没有测试它,但让我如果它工作 –

回答

1

一)在mainactivity,对于int

Integer jacky = 78; 
myDb.updateK(jacky); 

二)mainactivity,弦乐

String jackie = "jacko"; 
myDb.updateK(jackie); 

在databaseadapter

String cup = "_id = 1"; 
//since jack doesn't have to be jacky or jackie, and can be mary 
public void updateK(Object mary){ 
ContentValues tree = new ContentValues(); 
tree.put("columnone", mary); 
db.update("TableOne", tree, cup, null); 
} 

注:您的树应该也接受对象

+0

感谢它的运作。 – user3492802

1

"columnone"应该是表"TableOne"的列名称。验证该列的类型(在定义表格时应定义列数据类型)。根据你的问题,它应该是一个INTEGER类型。如果是这样,你可以改变它的类型为TEXT,那么你必须改变情况a)如下。

myDb.updateK(String.valueof(jacky)); 
+0

谢谢,但是会通过int jacky(即78)。我正在寻找的是将字符串jackie(即jacko)传入updateK方法。 – user3492802

+0

然后更改updatePK以接受字符串,并在调用时始终传递字符串值。如果你有int jacky,则将String.valueof(jacky)传递给新方法。如果你有字符串jacko,那么就按原样传递。 – Raghu

+0

如何更改updateK()以接受String? – user3492802

相关问题