2014-06-06 51 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

相關問題