gpt4 book ai didi

java - Android:SQLite cursor.getPosition() 返回字符串?

转载 作者:行者123 更新时间:2023-12-01 21:58:50 25 4
gpt4 key购买 nike

c.getString(c.getPosition()) 返回1 表示第一个元素,他对于第二元素,第三元素为锂,以及第四个元素为 9.0122。

这些对我来说是非常奇怪的位置值,我正在努力理解这一点。

是否应该返回设置为主键的atomicNumber?我是Android新手,在文档中它说cursor.getPosition():

“返回行集中光标的当前位置”

这是否意味着它返回 ROWID 或列中的当前位置?

public void Test(){
String URL = "content://com.apress.gerber.calculator.PeriodicTable/elements";
Uri element = Uri.parse(URL);

Cursor c = getContentResolver().query(element, null, null, null, PeriodicTable.ATOMIC_NUMBER);

if (c.moveToFirst()) {
do{
Toast.makeText(this,
c.getString(c.getColumnIndex(PeriodicTable.ATOMIC_NUMBER)) +
", " + c.getString(c.getColumnIndex( PeriodicTable.SYMBOL)) +
", " + c.getString(c.getColumnIndex( PeriodicTable.NAME)) +
", " + c.getString(c.getColumnIndex(PeriodicTable.MOLAR_MASS)) +
", POSITION: " + c.getString(c.getPosition()),
Toast.LENGTH_SHORT).show();
} while (c.moveToNext());
}
else Toast.makeText(this, "Database is empty.", Toast.LENGTH_SHORT).show();

}

解析到 SQLite 数据库中的 Element.xml:

<elements>
<element>
<molarMass>1.0079</molarMass>
<name>Hydrogen</name>
<symbol>H</symbol>
<atomicNumber>1</atomicNumber>
</element>

<element>
<molarMass>4.0026</molarMass>
<name>Helium</name>
<symbol>He</symbol>
<atomicNumber>2</atomicNumber>
</element>

<element>
<molarMass>6.941</molarMass>
<name>Lithium</name>
<symbol>Li</symbol>
<atomicNumber>3</atomicNumber>
</element>

<element>
<molarMass>9.0122</molarMass>
<name>Beryllium</name>
<symbol>Be</symbol>
<atomicNumber>4</atomicNumber>
</element>
</elements>

SQLite表语句:

static final String CREATE_DB_TABLE =
" CREATE TABLE " + ELEMENTS_TABLE_NAME +
" ( atomicNumber INTEGER PRIMARY KEY ASC, " +
" symbol TEXT NOT NULL, " +
" name TEXT NOT NULL, " +
" molarMass TEXT NOT NULL);";

最佳答案

当您调用c.getString()时,您将获取传入其索引的列中当前行的数据。您的代码正在传递返回的行号getPosition() 作为该列索引。从 getPosition() 调用中删除 getString() 以获取您所期望的内容。

", POSITION: " + c.getPosition(),

关于java - Android:SQLite cursor.getPosition() 返回字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33964526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com