۱۳۹۵/۰۳/۱۲, ۰۲:۲۶ ق.ظ
سلام
چطور میشه برای بانک خارجی db. یک search نوشت
در برنامم رکورد اضافه میکنه ولی جستجو چگونه است
این هم کدها
bankword.java
bankword.xml
Databaseb.java
list_viewb.java
چطور میشه برای بانک خارجی db. یک search نوشت
در برنامم رکورد اضافه میکنه ولی جستجو چگونه است
این هم کدها
bankword.java
کد:
import android.support.v7.app.ActionBarActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
public class Bankword extends Activity {
final String tbankb = "tbank";
final String tblbankb = "tblbank";
Databaseb myDbHelperb;
SQLiteDatabase dbb = this.getWritableDatabase();
ListAdapter adapterb;
ArrayList<HashMap<String, String>> datab;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bankword);
final Button ibbt = (Button) findViewById(R.id.button1);
final EditText searchbank = (EditText) findViewById(R.id.searchview);
ListView lstb=(ListView) findViewById(R.id.listViewbank);
Load_Database();
dbb = myDbHelperb.getReadableDatabase();
Cursor c = dbb.rawQuery("select * from tblbank", null);
datab = new ArrayList<HashMap<String, String>>();
for (; c.moveToNext();) {
HashMap<String, String> mapb = new HashMap<String, String>();
String stshaer = c.getString(c.getColumnIndex("tbank"));
mapb.put("tbank", stshaer);
datab.add(mapb);
}
adapterb = new list_viewb(this, datab);
lstb.setAdapter(adapterb);
ibbt.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
ContentValues values = new ContentValues();
values.put(tbankb, "موسی");
dbb.insert(tblbankb, null, values);
}
});
searchbank.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
}
@Override
public void afterTextChanged(Editable arg0) {
dbb.rawQuery("SELECT * FROM"+ tblbankb +" WHERE"+ tbankb +"like '" + " LIKE '"+ searchbank.getText()+"%'", null);
}
});
}
private SQLiteDatabase getWritableDatabase() {
// TODO Auto-generated method stub
return null;
}
private void Load_Database() throws Error {
myDbHelperb = new Databaseb(Bankword.this);
try {
myDbHelperb.createDataBase();
} catch (IOException ioe) {
throw new Error("Unable to create database");
}
try {
myDbHelperb.openDataBase();
} catch (SQLException sqle) {
throw sqle;
}
}
}
bankword.xml
کد:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="ir.ooza.shaer.Bankword" >
<EditText
android:id="@+id/searchview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:drawableRight="@android:drawable/ic_menu_search"
android:ems="10"
>
<requestFocus />
</EditText>
<ListView
android:id="@+id/listViewbank"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="200dp" >
</ListView>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:text="Button" />
</RelativeLayout>
Databaseb.java
کد:
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android.annotation.SuppressLint;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
@SuppressLint("SdCardPath")
public class Databaseb extends SQLiteOpenHelper {
String DB_PATHb = null;
public static String DB_NAMEb = "wbank";
private SQLiteDatabase myDataBaseb;
private final Context myContextb;
@SuppressLint("SdCardPath")
public Databaseb(Context context) {
super(context, DB_NAMEb,null, 2);
this.myContextb = context;
DB_PATHb = "/data/data/" + context.getPackageName() + "/" + "databases/";
}
public void createDataBase() throws IOException {
boolean dbExist = checkDataBase();
if (dbExist) {
} else {
this.getReadableDatabase();
try {
copyDataBase();
} catch (IOException e) {
throw new Error("Error copying database");
}
}
}
private boolean checkDataBase() {
SQLiteDatabase checkDBb = null;
try {
String myPathb = DB_PATHb + DB_NAMEb;
checkDBb = SQLiteDatabase.openDatabase(myPathb, null,
SQLiteDatabase.OPEN_READONLY);
} catch (SQLiteException e) {
// database does\'t exist yet.
}
if (checkDBb != null) {
checkDBb.close();
}
return checkDBb != null ? true : false;
}
private void copyDataBase() throws IOException {
InputStream myInputb = myContextb.getAssets().open(DB_NAMEb);
String outFileNameb = DB_PATHb + DB_NAMEb;
OutputStream myOutputb = new FileOutputStream(outFileNameb);
byte[] buffer = new byte[1024];
int lengthb;
while ((lengthb = myInputb.read(buffer)) > 0) {
myOutputb.write(buffer, 0, lengthb);
}
myOutputb.flush();
myOutputb.close();
myInputb.close();
}
public void openDataBase() throws SQLException {
String myPathb = DB_PATHb + DB_NAMEb;
// SQLiteDatabase.NO_LOCALIZED_COLLATORS
myDataBaseb = SQLiteDatabase.openDatabase(myPathb, null,
SQLiteDatabase.OPEN_READONLY
| SQLiteDatabase.NO_LOCALIZED_COLLATORS
| SQLiteDatabase.CREATE_IF_NECESSARY);
}
@Override
public synchronized void close() {
if (myDataBaseb != null)
myDataBaseb.close();
super.close();
}
public Cursor query(String table, String[] columns, String selection,
String[] selectionArgs, String groupBy, String having,
String orderBy) {
return myDataBaseb.query("pwp_singers", null, null, null, null, null,
null);
}
@Override
public void onCreate(SQLiteDatabase arg0) {
// TODO Auto-generated method stub
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
}
list_viewb.java
کد:
import java.util.ArrayList;
import java.util.HashMap;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class list_viewb extends BaseAdapter {
private Activity activity;
private ArrayList<HashMap<String, String>> datab;
private LayoutInflater inflate;
ViewHolder holderb;
public list_viewb(Activity a, ArrayList<HashMap<String, String>> d) {
activity = a;
datab = d;
inflate = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return datab.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@SuppressLint("InflateParams")
@Override
public View getView(int arg0, View view, ViewGroup arg2) {
View v1b = view;
if (v1b == null) {
v1b = inflate.inflate(R.layout.list_viewb, null);
holderb = new ViewHolder();
holderb.txt_bank = (TextView) v1b.findViewById(R.id.txt_bank);
// holder.txt_id.setVisibility(View.GONE);
v1b.setTag(holderb);
} else {
holderb = (ViewHolder) v1b.getTag();
}
HashMap<String, String> song = new HashMap<String, String>();
song = datab.get(arg0);
holderb.txt_bank.setText(song.get("tbank"));
return v1b;
}
static class ViewHolder {
TextView txt_bank;
}
}