بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
اشکال در جستجو
سلام دوستان من صفحه جستجو رو به این صورت طراحی کردم
کلاس دیتا بیس
package esi.tbook;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Environment;
import android.util.Log;
public class database extends SQLiteOpenHelper {
public static final String DIR_SDCARD = Environment.getExternalStorageDirectory().getAbsolutePath(); //این مسیر جدید رو بهش بدید
public static final String DIR_DATABASE = DIR_SDCARD + "/database-test3/";
public final String path = "data/data/esi.tbook/databases/";
public final String Name = "database.db"; //نام دیتا بیس
public SQLiteDatabase mydb;
private final Context mycontext;
public database(Context context) {
super(context, "database", null, 1);
mycontext = context;
Log.i("LOG", "mmmmmmmmmmmmmmmmmmmm");
}
@Override
public void onCreate(SQLiteDatabase arg0) {
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
}
public void useable() {
boolean checkdb = checkdb();
if (checkdb) {
} else {
this.getReadableDatabase();
try {
copyDatabase();
}
catch (IOException e) {
}
}
Log.i("LOG", "cccccccccccccccccccccccccccccc");
}
public void open() {
mydb = SQLiteDatabase.openDatabase(DIR_DATABASE + Name, null, SQLiteDatabase.OPEN_READWRITE);
}
{
}
@Override
public void close() {
mydb.close();
}
{
Log.i("LOG", "bbbbbbbbbbbbbbbbbbbbbbb");
}
public boolean checkdb() {
SQLiteDatabase db = null;
try {
db = SQLiteDatabase.openDatabase(DIR_DATABASE + Name, null, SQLiteDatabase.OPEN_READONLY);
}
catch (SQLException e) {
}
return db != null ? true : false;
}
{
Log.i("LOG", "6666666666666666666666666");
}
public void copyDatabase() throws IOException {
new File(DIR_DATABASE).mkdirs();
OutputStream myOutput = new FileOutputStream(DIR_DATABASE + Name);
byte[] buffer = new byte[1024];
int lenght;
InputStream myInput = mycontext.getAssets().open(Name);
while ((lenght = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, lenght);
}
myInput.close();
myOutput.flush();
myOutput.close();
}
{
Log.i("LOG", "00000000000000000000000000000000");
}
public String namayesh(int row, int field, String table) {
android.database.Cursor Cursor = mydb.rawQuery("SELECT * FROM " + table, null);
Cursor.moveToPosition(row);
String str = Cursor.getString(field);
return str;
}
{
}
public Integer shomaresh_field(String table, String field) {
Cursor Cursor = mydb.rawQuery("SELECT * FROM " + table + " group by " + field, null);
int i = Cursor.getCount();
return i;
}
public String namayesh_field(String table, int row) {
Cursor Cursor = mydb.rawQuery("SELECT * FROM " + table + " group by seasone", null);
Cursor.moveToPosition(row);
String s = Cursor.getString(4);
return s;
}
public Integer shomaresh_dastan(String table, String season) {
Cursor Cursor = mydb.rawQuery("SELECT * FROM " + table + " where seasone='" + season + "' group by name", null);
int s = Cursor.getCount();
return s;
}
public String namayesh_dastan(String table, int row, String season, int field) {
Cursor Cursor = mydb.rawQuery("select * from " + table + " where seasone='" + season + "' group by name", null);
Cursor.moveToPosition(row);
String save = Cursor.getString(1);
return save;
}
public Integer shomaresh_safhe_dastan(String table, String season, String story) {
Cursor Cursor = mydb.rawQuery("select * from " + table + " where seasone='" + season + "' and name='" + story + "'", null);
int save = Cursor.getCount();
return save;
}
public String namayesh_matn(String table, String season, String name, int page) {
Cursor Cursor = mydb.rawQuery("select * from " + table + " where seasone='" + season + "' and name='" + name + "' and page=" + page, null);
Cursor.moveToFirst();
String save = Cursor.getString(3);
return save;
}
public String jostojoo(int row, int col, String word, String field) {
Cursor cursor;
if (field.equals("name")) {
cursor = mydb.rawQuery("select * from databae where " + field + " like '%" + word + "%' group by name", null);
} else {
cursor = mydb.rawQuery("select * from database where " + field + " like '%" + word + "%'", null);
}
cursor.moveToPosition(row);
String save = cursor.getString(col);
return save;
}
public Integer shmaresh_jostojoo(String word, String field) {
Cursor cursor;
if (field.equals("name")) {
cursor = mydb.rawQuery("select * from database where " + field + " like '%" + word + "%' group by name", null);
} else {
cursor = mydb.rawQuery("select * from databae where " + field + " like '%" + word + "%'", null);
}
int save = cursor.getCount();
return save;
}
}
این هم کلاس search هست
package esi.tbook;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.TextView;
public class search extends ListActivity {
private database db;
private String[] Name;
private String[] seasone;
private String[] cpage;
private String[] page;
private EditText edt_searchbox;
private RadioButton rdo_search_name;
private RadioButton rdo_search_text;
private TextView status;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
db = new database(this);
edt_searchbox = (EditText) findViewById(R.id.edt_seaarchbox);
rdo_search_name = (RadioButton) findViewById(R.id.rdo_search_name);
rdo_search_text = (RadioButton) findViewById(R.id.rdo_search_text);
status = (TextView) findViewById(R.id.txt_status);
refresh(edt_searchbox.getText().toString(), "name");
edt_searchbox.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
if (rdo_search_name.isChecked()) {
refresh(edt_searchbox.getText().toString(), "name");
}
else if (rdo_search_text.isChecked()) {
refresh(edt_searchbox.getText().toString(), "text");
}
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
});
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Intent i = new Intent(search.this, matn_asli_dastan.class);
i.putExtra("seasone", seasone[position]);
i.putExtra("name", Name[position]);
i.putExtra("page", cpage[position]);
search.this.startActivity(i);
}
class AA extends ArrayAdapter<String> {
public AA() {
super(search.this, R.layout.row_seasones, Name);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater in = getLayoutInflater();
View row = in.inflate(R.layout.row_seasones, parent, false);
//----------------------------------------------------------
//-----------------------------------------------------------------
return (row);
}
}
private void refresh(String text1, String field) {
db.open();
int s = db.shmaresh_jostojoo(text1, field);
if (edt_searchbox.getText().toString().equals("")) {
s = 0;
status.setText(" لطفا کلمه مورد نطرتان را وارد کنید");
} else {
status.setText(" تعداد " + s + " یافت شد ");
}
Name = new String[s];
seasone = new String[s];
cpage = new String[s];
page = new String[s];
for (int i = 0; i < s; i++) {
Name[i] = db.jostojoo(i, 1, text1, field);
seasone[i] = db.jostojoo(i, 4, text1, field);
cpage[i] = db.shomaresh_safhe_dastan("database", seasone[i], Name[i]) + "";
if (field.equals("name")) {
page[i] = "";
} else {
page[i] = "--->" + db.jostojoo(i, 3, text1, field);
}
}
setListAdapter(new AA());
db.close();
}
}
وقتی رادیو باتن روی سمت چپی هست که جستجو براساس نام هست هیچی پیدا نمی کنه ؟؟؟!!! و اگه رادیو باتن رو ببرم روی سمت راستی که جستجو براساس متن هست برنامه کرش می کنه؟؟؟!!!!
0
0
قسمت تکست لاگ کتتو باز کن دوباره عکس بفرست (10 سال پیش)
برای این سوال 2 پاسخ وجود دارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .



