PDA

View Full Version : لیست علاقمندی



zarabela
دوشنبه 26 مرداد 1394, 18:29 عصر
سلام دوستان
من توی برنامم از دیتابیس استفاده کردم و حالا برای ایجاد لیست علاقمندی به مشکل برخوردم ، کدهام هم به صورت زیر هستن:

DatabaseHandler:
package com.example.data;

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;

public class DatabaseHandler extends SQLiteOpenHelper {

public final String path="data/data/com.example.data/databases/";
public SQLiteDatabase mydb;
private final Context myContext;

private static final String DATABASE_NAME="lakii";
public final String table="abyat";
public final String fav_table="favs";

public final String id="_id";
public final String beyt="beyt";



public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, 1);
myContext=context;
}





@Override
public void onCreate(SQLiteDatabase arg0) {
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}




public void useable() {
boolean chekdb=checkdb();
if(chekdb){

}else {
this.getReadableDatabase();
try {
copydatabase();
} catch (IOException e) {
// TODO: handle exception
}
}
}



public void open() {
mydb=SQLiteDatabase.openDatabase(path+DATABASE_NAM E, null,
SQLiteDatabase.OPEN_READWRITE);
}



public void close() {
mydb.close();
}



public boolean checkdb() {
SQLiteDatabase db=null;
try {
db=SQLiteDatabase.openDatabase(path+DATABASE_NAME, null,
SQLiteDatabase.OPEN_READWRITE);
} catch (SQLException e) {
// TODO: handle exception
}
return db!=null?true:false;
}


public long insertBeyt(String beYt) {
ContentValues initialValues=new ContentValues();
initialValues.put(beyt, beYt);
return mydb.insert(fav_table, null, initialValues);

}



public boolean deleteBeyt(String bEyt,String tbl_name) {
return mydb.delete(tbl_name, beyt+" LIKE '"+bEyt+"'", null)>0;
}




public void copydatabase () throws IOException{
OutputStream myOutput=new FileOutputStream(path+DATABASE_NAME);
byte[] buffer=new byte[1024];
int length;
InputStream myInput=myContext.getAssets().open(DATABASE_NAME);

while ((length=myInput.read(buffer))>0) {
myOutput.write(buffer, 0, length);
}
myInput.close();
myOutput.flush();
myOutput.close();
}




public String[] getFirstList() {
String[] list;

Cursor c=mydb.rawQuery("select * from "+table+" ORDER BY "+id, null);

list=new String[c.getCount()];
c.moveToFirst();

for (int i = 0; i < c.getCount(); i++) {
list[i]=c.getString(c.getColumnIndex(beyt));
c.moveToNext();
}
c.close();
return list;
}



//getFavBeyt
public String[] getFav() {
String[] list;
Cursor c=mydb.rawQuery("select * from "+fav_table+" ORDER BY "+id, null);

list=new String[c.getCount()];
c.moveToFirst();

for (int i = 0; i < c.getCount(); i++) {
list[i]=c.getString(c.getColumnIndex(beyt));
c.moveToNext();
}
c.close();
return list;
}





//*****************************
public Cursor getBeyt(long rowId)throws SQLException {
Cursor mCursor=mydb.query(true,
table, new String[]{id,beyt}, id+"="+rowId,
null, null, null, null, null);

if(mCursor!=null){
mCursor.moveToFirst();
}

return mCursor;
}



public Cursor getBeYT(String beYt,String table) throws SQLException
{
Cursor mCursor =
mydb.query(true, table, new String[] {id,
beyt, }, beyt + " LIKE '" + beYt + "'", null,
null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}


public String[] getNewList(String keyWord) {
String[] list;

Cursor c=mydb.rawQuery(" select * from "+table+" where "+beyt
+" LIKE '%"+keyWord+"%' ORDER BY "+id, null);

list=new String[c.getCount()];
c.moveToFirst();

for (int i = 0; i < c.getCount(); i++) {
list[i]=c.getString(c.getColumnIndex(beyt));
c.moveToNext();
}
c.close();
return list;
}

}





MainActivity
package com.example.data;

import android.os.Bundle;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends ListActivity {

private DatabaseHandler db;
private EditText et;
private String[] list_beyt;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);



db=new DatabaseHandler(this);
db.useable();








db.open();
list_beyt=db.getFirstList();
db.close();

tazeSazi();





et=(EditText)findViewById(R.id.eDitText1);
et.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub

}

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
String keyWord=et.getText().toString().trim();

db.open();
list_beyt=db.getNewList(keyWord);
db.close();
tazeSazi();
}
});



}



public class myAdapter extends ArrayAdapter<String> {

public myAdapter(Context context, int resource, int textViewResourceId,
String[] objects) {
super(context, resource, textViewResourceId, objects);
// TODO Auto-generated constructor stub
}



@Override
public View getView(final int position,View convertView,ViewGroup parent) {
LayoutInflater inflater=(LayoutInflater)getSystemService(Context. LAYOUT_INFLATER_SERVICE);
View row=inflater.inflate(R.layout.list_item, parent, false);

TextView tv=(TextView)row.findViewById(R.id.list_Txt);
ImageView share=(ImageView)row.findViewById(R.id.share_Btn);
ImageView fav=(ImageView)row.findViewById(R.id.fav_Btn);

tv.setText(list_beyt[position]);





//share
share.setOnClickListener(new OnClickListener(){
public void share(){
Intent share=new Intent(Intent.ACTION_SEND);
share.setType("text/plain");
String my_String = list_beyt[position];
share.putExtra(Intent.EXTRA_TEXT, my_String);
startActivity(Intent.createChooser(share, "Share via..."));
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
share();
}
});




fav.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
db.useable();
db.open();
// TODO Auto-generated method stub

if(db.getBeYT(list_beyt[position], db.fav_table).getCount()>0){
db.deleteBeyt(list_beyt[position], db.fav_table);
Toast.makeText(MainActivity.this,
"از لیست مورد علاقه ها حذف شد", Toast.LENGTH_SHORT).show();

}else {
db.insertBeyt(list_beyt[position]);
Toast.makeText(MainActivity.this,
"به لیست مورد علاقه ها اضافه شد", Toast.LENGTH_SHORT).show();
}

}
});
db.close();



return row;

}

}




public void tazeSazi() {
//setListAdapter(new ArrayAdapter<String>(this,
// android.R.layout.simple_list_item_1,list_beyt));
setListAdapter(new myAdapter(this, R.id.list_Txt, android.R.layout.simple_list_item_1, list_beyt));
}


}




FavActivity:
package com.example.data;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class FavActivity extends ListActivity {

DatabaseHandler db;
String[] list_beyt;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.fav);


db=new DatabaseHandler(this);
db.useable();



db.open();
list_beyt=db.getFav();
db.close();
tazesazi();
}




public void tazesazi() {
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,list_beyt));
}
}




اگه ممکنه راهنماییم کنید :لبخندساده: شدیدا بهش نیاز دارم:گریه:

zarabela
سه شنبه 27 مرداد 1394, 10:40 صبح
دوستان اگه ممکنه کمک کنید خیلی بهش نیاز دارم:گریه::گریه::گریه:

hamedjj
چهارشنبه 28 مرداد 1394, 16:37 عصر
این پروژه را ببینید در مورد با همین موضوع می باشد:
http://barnamenevis.org/showthread.php?401729-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF&p=2016418&viewfull=1#post2016418