I have an application, which can search string from database (like dictionary). Now I have word and definition rows in my sqlite database.
The problem is: I want to read random line from my database with an index number and put this line to my textview with both word and definition.
Thanks in advance
Here is my code:
Main Activity:
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
private EditText mEditText;
private TextView mReslutView;
private Cursor resultCursor;
private MyDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditText = (EditText) findViewById(R.id.et_words);
mReslutView = (TextView) findViewById(R.id.tv_result);
}
public void search(View view){
String inputValue = mEditText.getText().toString().trim();
if (TextUtils.isEmpty(inputValue)) {
mReslutView.setText("no data!");
return;
}
db = new MyDatabase(MainActivity.this);
resultCursor = db.getResultFromDB(inputValue);
if (resultCursor != null && resultCursor.getCount() > 0) {
resultCursor.moveToFirst();
String value = resultCursor.getString(resultCursor.getColumnIndex("soyisim" ));
mReslutView.setText(value);
}else {
mReslutView.setText("no name!");
}
}
}
MyDatabase:
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;
public class MyDatabase extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "name";
private static final int DATABASE_VERSION = 1;
public MyDatabase(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// you can use an alternate constructor to specify a database location
// (such as a folder on the sd card)
// you must ensure that this folder is available and you have permission
// to write to it
//super(context, DATABASE_NAME, context.getExternalFilesDir(null).getAbsolutePath(), null, DATABASE_VERSION);
}
public Cursor getResultFromDB(String value) {
SQLiteDatabase db = getReadableDatabase();
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
String [] sqlSelect = {"isim", "soyisim"};
String sqlTables = "myFile";
qb.setTables(sqlTables);
Cursor cursor = qb.query(db, sqlSelect, "isim=?", new String[]{value}, null, null, null);
cursor.moveToFirst();
return cursor;
}
}
Finally; XML:
<RelativeLayout xmlns:android="http://ift.tt/nIICcg"
xmlns:tools="http://ift.tt/LrGmb4"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:id="@+id/btn_search"
android:onClick="search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/et_words"
android:text="ARA" />
<EditText
android:id="@+id/et_words"
android:hint="Enter Word"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="0dp"
android:layout_toLeftOf="@+id/btn_search"
android:ems="10" />
<TextView
android:id="@+id/tv_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/et_words"
android:layout_below="@+id/et_words"
android:text="Definition" />
<TextView
android:id="@+id/tv_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tv_desc"
android:layout_below="@+id/tv_desc"
android:layout_marginTop="18dp"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/experimental"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tv_desc"
android:layout_below="@+id/tv_result"
android:layout_marginTop="18dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:hint="experimental" />
</RelativeLayout>
Aucun commentaire:
Enregistrer un commentaire