为什么我的字符串不能像我想要的那样排序,当我从textview插入值时?
问题描述:
我有计数器,它会计算我点击一个按钮的次数。为什么我的字符串不能像我想要的那样排序,当我从textview插入值时?
public void onClick(View v) {
counter++;
text.setText("Score"+counter);
}
然后我插入到我的DB值这个
text = (TextView) findViewById(R.id.textView1);
final String Score = text.getText().toString();
mySQLiteAdapter.openToWrite();
mySQLiteAdapter.insert("sccore="Score);
mySQLiteAdapter.close();
这是我的插入功能
public long insert(String content){
ContentValues contentValues = new ContentValues();
contentValues.put(KEY_CONTENT, content);
return sqLiteDatabase.insert(MYDATABASE_TABLE, null, contentValues);
}
所以所插入是 - 计数器值>分数= 2,分数= 1 ,分数= 111,分数= 3,分数= 21 < - (其计数器值)
然后我想看到t他在另一个texview所以分数:
mySQLiteAdapter = new SQLiteAdapter(this);
/*
* Open the same SQLite database
* and read all it's content.
*/
mySQLiteAdapter = new SQLiteAdapter(this);
mySQLiteAdapter.openToRead();
String contentRead = mySQLiteAdapter.queueAll();
listContent.setText(contentRead);
mySQLiteAdapter.close();
我温控功能queueAll()看起来像:
public String queueAll(){
String[] columns = new String[]{KEY_CONTENT};
Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns,
null, null, null, null, KEY_CONTENT+" desc");
String result = "";
int index_CONTENT = cursor.getColumnIndex(KEY_CONTENT);
for(cursor.moveToFirst(); !(cursor.isAfterLast()); cursor.moveToNext()){
result = result + cursor.getString(index_CONTENT) + "\n";
}
return result;
}
确定,在文本视图中我看到了这一点:
Score = 3 , Score=21 , Score=2 , Score=111, Score=1
,但我想
score=111, score=21, score=3, score=2, score=1.
为什么顺序由DESC没有排序这像我想在DESC?为什么这样想?为什么我插入的计数器值没有排序DESC?
public static final String MYDATABASE_NAME = "MY_DATABASE";
public static final String MYDATABASE_TABLE = "MY_TABLE";
public static final int MYDATABASE_VERSION = 1;
public static final String KEY_CONTENT = "Content";
//create table MY_DATABASE (ID integer primary key, Content text not null);
private static final String SCRIPT_CREATE_DATABASE =
"create table " + MYDATABASE_TABLE + " ("
+ KEY_CONTENT + " text not null);";
说实话,我的专栏KEY_CONTENT应该是NUMBER而不是STRING。如何改变这一点? 当我将str更改为num时,会按照我想要的DESC工作顺序进行排序?
答
您将您的号码存储为text
,以便您按字母排序顺序。
您可以将数字转换成integer
当您查询:
Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns,
null, null, null, null, "CAST(" + KEY_CONTENT + " as integer) desc");
感谢一个充分的准备问题。 – Szymon