这是源代码 - 当我尝试添加 +“按姓氏排序”时出现错误有什么想法吗?(绝对是新手)我有 // 在我的尝试前面大约 55 行。我试图让结果按姓氏排序
package com.tritech.colony;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class SearchPersonByColonyActivity extends Activity implements OnItemClickListener
{
private EditText searchPersonByColonyEditText ;
private SQLiteDatabase db ;
private Cursor cursor ;
private ListAdapter adapter ;
private ListView personByColonyListView ;
private DatabaseHelper databaseHelper ;
private String colonyName ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.searchpersonbycolony);
this.colonyName = this.getIntent().getStringExtra(DatabaseHelper.KEY_COLONY_NAME);
this.databaseHelper = new DatabaseHelper(this);
this.databaseHelper.createDatabase();
try {
this.databaseHelper.openDatabase();
} catch( SQLException ex ) {
Log.e( DatabaseHelper.TAG, "Database can not be opened", ex);
}
this.databaseHelper.close();
this.db = this.databaseHelper.getReadableDatabase() ;
this.searchPersonByColonyEditText = (EditText)this.findViewById(R.id.searchPersonByColonyEditText);
this.personByColonyListView = (ListView)this.findViewById(R.id.searchPersonByColonyList);
this.personByColonyListView.setOnItemClickListener(this);
this.cursor = this.db.rawQuery("SELECT _id as _id , " +
DatabaseHelper.KEY_LAST_NAME + " , " +
DatabaseHelper.KEY_FIRST_NAME + " , " +
"\"" + DatabaseHelper.KEY_SR_JR + "\" " +
"FROM " + DatabaseHelper.TABLE_NAME +
" WHERE " + DatabaseHelper.KEY_COLONY_NAME + " LIKE ?",
new String[] { this.colonyName } );
// tried these for line above and they fails
// new String[] { this.colonyName } + " ORDER BY " + DatabaseHelper.KEY_LAST_NAME );
// new String[] { this.colonyName } + " ORDER BY lastname" );
this.startManagingCursor(this.cursor);
this.adapter = new SimpleCursorAdapter(this,
R.layout.searchpersonbycolonyrow ,
this.cursor ,
new String[] { DatabaseHelper.KEY_LAST_NAME , DatabaseHelper.KEY_FIRST_NAME , DatabaseHelper.KEY_SR_JR },
new int[] { R.id.searchPersonByColonyLastnameTextView , R.id.searchPersonByColonyFirstnameTextView , R.id.searchPersonByColonySrJrTextView } );
this.personByColonyListView.setAdapter(this.adapter);
}
@Override
protected void onResume() {
super.onResume();
boolean back_tag = this.getSharedPreferences(MainActivity.TAG, MODE_PRIVATE).getBoolean(MainActivity.BACK_TAG, false);
if( back_tag ) {
this.finish();
}
}
public void searchPerson( View v ) {
String text = this.searchPersonByColonyEditText.getText().toString();
if( !text.equals("") ) {
this.cursor = this.db.rawQuery("SELECT _id as _id , " +
DatabaseHelper.KEY_LAST_NAME + " , " +
DatabaseHelper.KEY_FIRST_NAME + " , " +
"\"" + DatabaseHelper.KEY_SR_JR + "\" " +
"FROM " + DatabaseHelper.TABLE_NAME +
" WHERE " + DatabaseHelper.KEY_COLONY_NAME + " LIKE ?" +
" AND " + DatabaseHelper.KEY_LAST_NAME + " LIKE ?" ,
new String[] { this.colonyName , "%"+text+"%" } );
} else {
this.cursor = this.db.rawQuery("SELECT _id as _id , " + DatabaseHelper.KEY_LAST_NAME + " , " + DatabaseHelper.KEY_FIRST_NAME + " FROM " + DatabaseHelper.TABLE_NAME + " WHERE " + DatabaseHelper.KEY_COLONY_NAME + " LIKE ?", new String[] { this.colonyName } );
this.cursor = this.db.rawQuery("SELECT _id as _id , " +
DatabaseHelper.KEY_LAST_NAME + " , " +
DatabaseHelper.KEY_FIRST_NAME + " , " +
"\"" + DatabaseHelper.KEY_SR_JR + "\" " +
"FROM " + DatabaseHelper.TABLE_NAME +
" WHERE " + DatabaseHelper.KEY_COLONY_NAME + " LIKE ?",
new String[] { this.colonyName } );
}
this.startManagingCursor(this.cursor);
this.adapter = new SimpleCursorAdapter(this,
R.layout.searchpersonbycolonyrow ,
this.cursor ,
new String[] { DatabaseHelper.KEY_LAST_NAME , DatabaseHelper.KEY_FIRST_NAME , DatabaseHelper.KEY_SR_JR },
new int[] { R.id.searchPersonByColonyLastnameTextView , R.id.searchPersonByColonyFirstnameTextView , R.id.searchPersonByColonySrJrTextView } );
this.personByColonyListView.setAdapter(this.adapter);
}
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent( this , PersonDetailsActivity.class );
Cursor cursor = (Cursor)this.adapter.getItem(position);
intent.putExtra(DatabaseHelper.KEY_ID, cursor.getInt( cursor.getColumnIndex(DatabaseHelper.KEY_ID) ) );
this.startActivity(intent);
}
protected void onDestroy() {
this.cursor.close();
this.databaseHelper.close();
super.onDestroy();
}
}