samedi 10 octobre 2015

How to Search data from the database SQlite using Searchview and display result in ListView ?

i'm new to android studio please give me solution for code given below,Now i want to display my result below the SearchView in list form and it should be clickable

Here is my Main_Activity.java code

package com.example.jawa.pos;

import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;

/**
 * Created by jawa on 10/7/2015.
 */
public class AddNewUser extends Activity {
    DATA_BASE data_base;
    EditText accountnumber,personalname,email,phonenmber,comment;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.addnewuser);


        data_base=  new DATA_BASE(this);


        accountnumber = (EditText) findViewById(R.id.accountnumber);
        personalname = (EditText) findViewById(R.id.customernumber);
        phonenmber = (EditText) findViewById(R.id.phonenumber);
        email = (EditText) findViewById(R.id.email);
        comment= (EditText) findViewById(R.id.comment);

    }
    public void register(View view) {

        int Accountnumber = Integer.parseInt(accountnumber.getText().toString());
        String Personalname = personalname.getText().toString();
        int Phonenumber = Integer.parseInt(phonenmber.getText().toString());
        String Email = email.getText().toString();
        String Comment = comment.getText().toString();

        //Add some Customer data as a sample
        long id = data_base.createCustomer(Accountnumber, Personalname, Phonenumber, Email, Comment);

        if(id <0){
            Toast.makeText(this,"Unsuccessful",Toast.LENGTH_SHORT).show();
        }else {
            Toast.makeText(this,"Successful",Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }


}

Here is my DATA_BASE_Adapter.java file

package com.example.jawa.pos;

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.text.method.DateTimeKeyListener;
import android.util.Log;
import android.widget.Toast;

import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Locale;


/**
 * Created by jawa on 10/9/2015.
 */
public class DATA_BASE_Adapter {

    DATA_BASE data_base;
    Context context;
    SQLiteDatabase db;

    public DATA_BASE_Adapter(Context context) {
        data_base = new DATA_BASE(context);
    }

    public long addUaser(int accno,String name,int phonenumber,String email,String comment ){

        SQLiteDatabase db = data_base.getWritableDatabase();

        ContentValues contentValues = new ContentValues();

        contentValues.put(DATA_BASE.DATE_TIME, System.currentTimeMillis());
        contentValues.put(DATA_BASE.ACCOUNT_NO, accno);
        contentValues.put(DATA_BASE.CUSTOMER_NAME, name);
        contentValues.put(DATA_BASE.PHONE_NO, phonenumber);
        contentValues.put(DATA_BASE.EMAIL, email);
        contentValues.put(DATA_BASE.COMMENT, comment);

        long id = db.insert(DATA_BASE.TABLE_NAME1,null, contentValues);

        return id;
    }

    public String showAlldetails(){

        SQLiteDatabase db = data_base.getWritableDatabase();
        String[] colums = {data_base.DATE_TIME,
                data_base.ACCOUNT_NO,
                data_base.CUSTOMER_NAME,
                data_base.PHONE_NO,
                data_base.EMAIL,
                data_base.COMMENT};
        Cursor cursor = db.query(DATA_BASE.TABLE_NAME1, colums, null, null, null, null, null);

        StringBuffer buffer = new StringBuffer();

        while(cursor.moveToNext()){

            int datetime = cursor.getInt(0);
            int cacc =  cursor.getInt(1);
            String name = cursor.getString(2);
            String phoneno = cursor.getString(3);
            String email = cursor.getString(4);
            String comment = cursor.getString(5);
            buffer.append(datetime+" "+cacc + " " + name + " " + phoneno+" "+email+" "+ comment+"\n" );
        }
        return buffer.toString();
    }

    public String selectionCondition(String name) throws SQLException{
        SQLiteDatabase db = data_base.getWritableDatabase();
        String[] colums = {data_base.DATE_TIME,
                data_base.ACCOUNT_NO,
                data_base.CUSTOMER_NAME,
                data_base.PHONE_NO,
                data_base.EMAIL,
                data_base.COMMENT};
        Cursor cursor = db.query(DATA_BASE.TABLE_NAME1, colums, data_base.CUSTOMER_NAME+"='"+name+"'",
                null, null, null, null);

        StringBuffer buffer = new StringBuffer();

        while(cursor.moveToNext()){

            int Index0 = cursor.getColumnIndex(data_base.DATE_TIME);
            int Index2 = cursor.getColumnIndex(data_base.CUSTOMER_NAME);
            int Index1 = cursor.getColumnIndex(data_base.ACCOUNT_NO);
            int Index3 = cursor.getColumnIndex(data_base.PHONE_NO);
            int Index4 = cursor.getColumnIndex(data_base.EMAIL);
            int Index5 = cursor.getColumnIndex(data_base.COMMENT);

            int date=  cursor.getInt(Index0);
            int cacc =  cursor.getInt(Index1);
            String cname = cursor.getString(Index2);
            String phoneno = cursor.getString(Index3);
            String email = cursor.getString(Index4);
            String comment = cursor.getString(Index5);

            buffer.append(date+" "+cacc + " " + cname + " " + phoneno+" "+email+" "+ comment+"\n" );
        }
        return buffer.toString();
    }
    static class DATA_BASE extends SQLiteOpenHelper  {

        private static final String DATABASE_NAME = "coldstore";
        private static final int DATABASE_VERSION = 1;
        private static final String TABLE_NAME1 = "new_customer";
        private static final String ACCOUNT_NO = "_Account No";
        private static final String CUSTOMER_NAME = "Customer Name";
        private static final String PHONE_NO = "Phone";
        private static final String EMAIL  = "Mail Id";
        private static final String COMMENT= "Comment";
        private static final String DATE_TIME= "Date/Time";
        private static final String CREATE_TABLE_NEW_CUSTOMER = "CREATE TABLE "+TABLE_NAME1+"" +
                "("+DATE_TIME+" INTEGER," +
                ""+ACCOUNT_NO+" INTEGER PRIMARY KEY AUTOINCREMENT," +
                ""+CUSTOMER_NAME+" VARCHAR(25) NOT NULL," +
                ""+PHONE_NO+" INTEGER NOT NULL," +
                ""+EMAIL+" VARCHAR(130) NOT NULL," +
                ""+COMMENT+" VARCHAR(250) NOT NULL;";
        private static final String DROP_TABLE = "DROP TABLE IF EXISTS "+TABLE_NAME1+";";
        private Context context;

        public DATA_BASE(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
            this.context = context;
        }

        @Override
        public void onCreate(SQLiteDatabase db) {

            try {
                Toast.makeText(context,"OnCreate Table new Customer",Toast.LENGTH_SHORT).show();
                db.execSQL(CREATE_TABLE_NEW_CUSTOMER);
            } catch (SQLException e) {
                e.printStackTrace();
            }

        }

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

            try {
                Toast.makeText(context,"OnUpgrade Table new Customer ",Toast.LENGTH_SHORT).show();
                db.execSQL(DROP_TABLE);
                onCreate(db);
            } catch (SQLException e) {
                e.printStackTrace();
            }

        }
    }

    public DATA_BASE_Adapter open() throws SQLException {
        data_base = new DATA_BASE(context);
         db = data_base.getWritableDatabase();
        return this;
    }
    public void close() {
        if (data_base!= null) {
            data_base.close();
        }
    }
    public boolean deleteAllCustomers() {

        int doneDelete = 0;
        doneDelete = db.delete(DATA_BASE.TABLE_NAME1, null , null);
        return doneDelete > 0;

    }
}

Now i want to give SearchView nto this data base by adapter and this reslut should be displayed in Listview.

Can anyone help me out please From last two weeks trying crack this but couldn't find the solution.

Aucun commentaire:

Enregistrer un commentaire