آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

esiii  10 سال پیش  10 سال پیش
+1 0

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

کلاس دیتا بیس

  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 پاسخ وجود دارد.
پاسخ به سوال 
esiii  10 سال پیش
0 0

+1 0
میگه تیبلی به اسم دیتابیس وجود نداره (10 سال پیش)
0 0
خب اسم تیبل database هست !!!! (10 سال پیش)
پاسخ به سوال 
esiii  10 سال پیش
0 0

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

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

0 0
داداش حلش کردم مرسی (10 سال پیش)

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