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

بچه ها اشکال کجاست؟؟؟!!!

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

سلام دوستان

من این کلاس رو برای علاقه مندی نوشتم

 package esi.tbook;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;


public class list_stars extends ListActivity {

private database db;
private String[] Name;
private String[] Teedad;
private String[] Star;
private String[] Season;

private String season;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.storys);
db = new database(this);

refresher();
setListAdapter(new AA());

}


@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Intent intent = new Intent(list_stars.this, matn_asli_dastan.class);
intent.putExtra("seasone", season);
intent.putExtra("name", Name[position]);
intent.putExtra("page", Teedad[position]);
list_stars.this.startActivity(intent);
}


class AA extends ArrayAdapter<String> {

public AA() {
super(list_stars.this, R.layout.row_stars, Name);

}


@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater in = getLayoutInflater();
View row = in.inflate(R.layout.row_stars, parent, false);

TextView name = (TextView) row.findViewById(R.id.txt_name_story);
TextView page = (TextView) row.findViewById(R.id.txt_number_story);
final ImageView star_del = (ImageView) row.findViewById(R.id.star_del);

star_del.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
db.open();
db.beroozresani_doostdashtaniha("database", Season[position], Name[position], "0");

db.close();
refresher();
}
});

name.setText(Name[position]);
page.setText(Teedad[position] + " صفحه ");

return (row);
}

}


private void refresher() {
db.open();
int save = db.shomaresh_doosrdashtaniha("database");
if (save == 0) {
finish();
Toast.makeText(getApplicationContext(), " لیست علاقه مندی های شما خالی است!", Toast.LENGTH_SHORT).show();
}
Name = new String[save];
Teedad = new String[save];
Star = new String[save];
Season = new String[save];

for (int i = 0; i < save; i++) {

Name[i] = db.namayesh_doosrdashtaniha("database", i, 1);
Star[i] = db.namayesh_doosrdashtaniha("database", i, 5);
Season[i] = db.namayesh_doosrdashtaniha("database", i, 4);
Teedad[i] = db.shomaresh_safhe_dastan("database", Season[i], Name[i].toString()) + "";

}
setListAdapter(new AA());
db.close();
}
}

همه چی خوب کار می کنه فقط وقتی می خوام وارد بشم به متن علاقه مندی اپلیکشن کرش می کنه؟؟!!!

 

 

 

نظرات

MOJTABA 10 سال پیش
تصویر که میگه مشکل از دیتابیس هست و در قسمت cursor . آقا اسماعیل شما قسمت کد های دیتابیس رو بعد هر کد یه Log بزارین ببینین کجا دیگه Log چاپ نمیشه اون موقع مشکل ریز تر میشه و راحت تر میشه دربارش فکر کرد.

پاسخ‌ها 2

esiii 10 سال پیش

متن متوجه نشدم کجا مشکل داره

ممنون میشم کمک کنید

کلاسdatabase

 
 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.ContentValues;
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-test4/";
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(field);
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 database 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 database where " + field + " like '%" + word + "%'", null);
}
int save = cursor.getCount();
return save;
}

{
Log.i("LOG", "+++++++++++++++++++++++++++++++++");
}


public void beroozresani_doostdashtaniha(String table, String season, String name, String value) {
ContentValues cv = new ContentValues();

cv.put("star", value);
mydb.update(table, cv, "seasone='" + season + "' and name='" + name + "'", null);
}

{
Log.i("LOG", "////////////////////////////");
}


public Integer shomaresh_doosrdashtaniha(String table) {
Cursor Cursor = mydb.rawQuery("select * from " + table + " where star=1 group by name", null);
int save = Cursor.getCount();
return save;
}

{
Log.i("LOG", "------------------");
}


public String namayesh_doosrdashtaniha(String table, int row, int field) {
Cursor Cursor = mydb.rawQuery("select * from " + table + " where star=1 group by name", null);
Cursor.moveToPosition(row);
String save = Cursor.getString(field);
return save;
}

{
Log.i("LOG", "*************************************");
}
}

نظرات

MOJTABA 10 سال پیش
توی سورس اولی هم چاپ کردن Log رو امتحان کردید؟ شاید توی استفاده از دیتابیس اشتباهی انجام داده اید.
esiii 10 سال پیش
اونجا هم لاگ گذاشتم و همه لاگ ها هم اجرا میشن !!!!!!!!!!!!
esiii 10 سال پیش

نظرات

esiii 10 سال پیش
دوستان لطف کمک کنید ...
esiii 10 سال پیش
بالاخره درستش کردم وای تو پوست خود نمی گنجم از خوشحایییییییییییییییییییییییییی :)
MOJTABA 10 سال پیش
مشکل از چی بود؟

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