بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

اشکال در جستجو

مدیریت گفتگو
esiii 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام دوستان من صفحه جستجو رو به این صورت طراحی کردم

کلاس دیتا بیس

  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();

}

}

وقتی رادیو باتن روی سمت چپی هست که جستجو براساس نام هست  هیچی  پیدا نمی کنه ؟؟؟!!! و اگه رادیو باتن رو ببرم روی سمت راستی که جستجو براساس متن هست برنامه کرش می کنه؟؟؟!!!!

نظرات

Hossein Lamei Ramandi 10 سال پیش
قسمت تکست لاگ کتتو باز کن دوباره عکس بفرست

پاسخ‌ها 2

esiii 10 سال پیش

نظرات

esiii 10 سال پیش
خب اسم تیبل database هست !!!!
esiii 10 سال پیش

ممنون مهندس مشکل حل شد

فقط مشکل بعد اینه که نتیجه جستجو رو ست نمی کنه با تکست ویو ها ولی محتوایت داخلی درسته

نظرات

esiii 10 سال پیش
داداش حلش کردم مرسی

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .