使用这个例子(https://stackoverflow.com/a/9109728/2808099)我连接了我的数据库。但我没有在这个数据库中组织搜索。我试图从EditText传达一个请求,并在textView(或ListView)中显示结果。
MainActivity
public void LoadAddress(View v)
{
searchAddress = editTextSearch.getText().toString();
TestAdapter mDbHelper = new TestAdapter(this);
mDbHelper.createDatabase();
mDbHelper.open();
Cursor testdata = mDbHelper.getTestData("SELECT * FROM Address " +searchAddress+"';", null);
String address=testdata.getString(1).toString();
textView.setText(address);
mDbHelper.close();
}
TestAdapter
public Cursor getTestData(String s, Object o)
{
try
{
String sql ="SELECT * FROM Address";
Cursor mCur = mDb.rawQuery(sql, null);
if (mCur!=null)
{
mCur.moveToNext();
}
return mCur;
}
catch (SQLException mSQLException)
{
Log.e(TAG, "getTestData >>"+ mSQLException.toString());
throw mSQLException;
}
}
无论EditText的内容是什么,数据库的第一行输出
答案 0 :(得分:0)
你总是打电话给“select * from Address”。这将总是查询一切。
String userInp = editTextSearch.getText().toString();
String query = "select * from Addresses where address = " + userInp;
Cursor cursor= mDbHelper.getDb().rawQuery(query, null);
if (null != cursor)
cursor.moveToFirst();
String output = cursor.getString(1);
Android的一个很好的教程是: http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/
对于这样的简单查询,您可能需要考虑使用带参数的查询而不是原始sql。
您可以在这里学习SQL: http://www.w3schools.com/sql/