soroush_habibi

حذف ردیف ها در دیتابیس

12 ارسال در این موضوع قرار دارد

سلام.چطوری هر خطی که خواستم رو،بدون استفاده از اطلاعات ستون ها،حذف کنم؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در ۱ ساعت قبل، soroush_habibi گفته است :

سلام.چطوری هر خطی که خواستم رو،بدون استفاده از اطلاعات ستون ها،حذف کنم؟

public void deleteEntry(long rowId) {
    database.delete(DATABASE_TABLE , KEY_ROWID 
        + " = " + rowId, null);}

فقط با شرط اسم فیلد این کار امکان پذیر میباشد

1 کاربر پسند دیده است

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

چطوری یه ستون آیدی بسازم که با هر بار اضافه شدن آیتم به ریسایکلرویو به صورت اتوماتیک به ترتیب یه عدد به خودش بده؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 48 دقیقه قبل، soroush_habibi گفته است :

چطوری یه ستون آیدی بسازم که با هر بار اضافه شدن آیتم به ریسایکلرویو به صورت اتوماتیک به ترتیب یه عدد به خودش بده؟

باید یک فیلد از نوع Integer و AUTO_INCREMENT  بسازید

CREATE TABLE Persons (
    ID Integer NOT NULL AUTO_INCREMENT,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (ID)
);

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

اگه این کارو انجام بدم بعد یکی از آیتم ها رو حذف کنم مثلا آیتم4از 5 آیتم؛به این شکل در میاد؟:

1

2

3

5

یا به این شکل:

1

2

3

4

؟؟؟؟؟؟؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 51 دقیقه قبل، soroush_habibi گفته است :

اگه این کارو انجام بدم بعد یکی از آیتم ها رو حذف کنم مثلا آیتم4از 5 آیتم؛به این شکل در میاد؟:

1

2

3

5

یا به این شکل:

1

2

3

4

؟؟؟؟؟؟؟

 

خیر این انجام نمیشود.عدد اپدیت نمیشود.

چه نیازی دارید که عدد کم شود؟ تا راهنمای کنم و مشکلتون رو حل کنم

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

می خوام وقتی کاربر دستشو رو یکی از آیتم ها نگه میداره اون آیتم پاک بشه.در این صورت position آیتم در ریسایکر ویو آپدیت میشه ولی آیدی در دیتابیس آپدیت نمیشه و مشکل به وجود میاد

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 3 دقیقه قبل، soroush_habibi گفته است :

می خوام وقتی کاربر دستشو رو یکی از آیتم ها نگه میداره اون آیتم پاک بشه.در این صورت position آیتم در ریسایکر ویو آپدیت میشه ولی آیدی در دیتابیس آپدیت نمیشه و مشکل به وجود میاد

واسه اینکار باید اینکار رو کنید

 

private void deleteItem(int position) {
        mDataSet.remove(position);
        notifyItemRemoved(position);
        notifyItemRangeChanged(position, mDataSet.size());
}

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 16 دقیقه قبل، Farzad Sarseifi گفته است :

واسه اینکار باید اینکار رو کنید

 


private void deleteItem(int position) {
        mDataSet.remove(position);
        notifyItemRemoved(position);
        notifyItemRangeChanged(position, mDataSet.size());
}

 

می خوام از دیتابیس هم حذف بشه

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 6 ساعت قبل، soroush_habibi گفته است :

می خوام از دیتابیس هم حذف بشه

این روش رو امتحان کنید

لایوت اداپتر :

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="60dp">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="60dp">


        <TextView
            android:id="@+id/txt_date"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="30dp"
            android:text="@string/date_action" />


        <TextView
            android:id="@+id/txt_time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginRight="20dp"
            android:layout_toLeftOf="@+id/txt_date"
            android:text="@string/time_action" />


        <TextView
            android:id="@+id/txt_details"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginRight="50dp"
            android:layout_marginTop="10dp"
            android:layout_toLeftOf="@+id/txt_time"

            android:text="@string/details" />


        <Button
            android:id="@+id/btn_delete"
            android:layout_width="60dp"
            android:layout_height="40dp"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_marginLeft="5dp"
            android:text="@string/delete" />


    </RelativeLayout>

    <TextView
        android:id="@+id/txt_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone" />


</RelativeLayout>

کلاس اداپتر :

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

import com.gamadesk.Database.ActionDbAdapter;
import com.gamadesk.Model.Action;
import com.gamadesk.Model.Inbox;
import com.gamadesk.R;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Farzad Sarseify on 11/16/2015.
 */
public class ActionAdapter extends RecyclerView.Adapter<ActionAdapter.ViewHolder> {

    private List<Action> items;
    private static Context m_context;


    private static ArrayList<Inbox> arrayList;
    private static String videoFileName;
    private static String path;
    private static String txt_id;
    private int position;
    Action item;
    ActionDbAdapter actionDbAdapter;
    int pos;


    public ActionAdapter(List<Action> items, Context context) {
        this.items = items;
        m_context = context;
        actionDbAdapter=new ActionDbAdapter(context);
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.action_list_row, parent, false);
        return new ViewHolder(v);
    }

    @Override
    public void onBindViewHolder(final ViewHolder holder, final int position) {
         item = items.get(position);
        holder.txt_date.setText(item.getADate());
        holder.txt_time.setText(item.getATime());
      //  holder.txt_type_action.setText(item.getType_Id());


        String detail=item.getDetails();

        holder.txt_details.setText(detail);

        holder.txt_id.setText(item.getId() + "");
        pos=position;

        holder.btn_delete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


               long ret=actionDbAdapter.DeleteAction(holder.txt_id.getText().toString()+"");
                if(ret>0){
                    //removeAt(pos-1);
                    removeAt(position);
                }
                //notifyDataSetChanged();

            }
        });


        holder.itemView.setTag(item);
    }


    public void removeAt(int position) {
        items.remove(position);
        notifyItemRemoved(position);
        notifyItemRangeChanged(position, items.size());
    }




    @Override
    public int getItemCount() {
        return items.size();
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        public TextView txt_id, txt_date, txt_time, txt_details, txt_flowId;
        Button btn_delete;

        public ViewHolder(View itemView) {
            super(itemView);
            txt_id = (TextView) itemView.findViewById(R.id.txt_id);
            txt_date = (TextView) itemView.findViewById(R.id.txt_date);
            txt_time = (TextView) itemView.findViewById(R.id.txt_time);
            txt_details = (TextView) itemView.findViewById(R.id.txt_details);
            btn_delete = (Button) itemView.findViewById(R.id.btn_delete);


        }


    }



}

 

نمایش RecyclerView  در اکتیویتی

   actionArrayList=actionDbAdapter.getAllActions();
        recyclerView.setHasFixedSize(true);
        recyclerView.setAdapter(new ActionAdapter(actionArrayList, getApplicationContext()));
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getApplicationContext(), LinearLayoutManager.VERTICAL, false);
        recyclerView.setLayoutManager(linearLayoutManager);

        recyclerView.setItemAnimator(new DefaultItemAnimator());

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

کلاس آداپتر:

package com.example.soroush.royalkade;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

import java.util.ArrayList;

public class Recycler_View_Adapter extends RecyclerView.Adapter<Recycler_View_Adapter.adapter> {
    private ArrayList<data> data1;
    DataBaseHelper db;

    public Recycler_View_Adapter(ArrayList<data> data, Context context) {
        this.data1 = data;
        m_context = context;

        db = new DataBaseHelper(context);
    }

    private static Context m_context;

    @Override
    public adapter onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false);
        adapter ad = new adapter(v);
        return ad;
    }

    @Override
    public void onBindViewHolder(final adapter holder, final int position) {
        holder.card_1.setText(data1.get(position).getCard_1());
        holder.card_2.setText(data1.get(position).getCard_2());
        holder.card_3.setText(data1.get(position).getCard_3());
        holder.card_4.setText(data1.get(position).getCard_4());
        holder.card_5.setText(data1.get(position).getCard_5());
        holder.card_6.setText(data1.get(position).getCard_6());
        holder.card_7.setText(data1.get(position).getCard_7());
        holder.card_8.setText(data1.get(position).getCard_8());
        holder.avarage.setText(data1.get(position).getAvarage());
        holder.description.setText(data1.get(position).getDescription());
        holder.id.setText(data1.get(position).getId());

        holder.btn_delete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                db.delete(Integer.parseInt(holder.id.getText().toString()));
                removeAt(position);
            }
        });

    }

    @Override
    public int getItemCount() {
        return data1.size();
    }

    public class adapter extends RecyclerView.ViewHolder {
        public TextView card_1;
        public TextView card_2;
        public TextView card_3;
        public TextView card_4;
        public TextView card_5;
        public TextView card_6;
        public TextView card_7;
        public TextView card_8;
        public TextView avarage;
        public TextView description;
        public TextView id;
        public Button btn_delete;

        public adapter(final View itemView) {
            super(itemView);
            card_1 = (TextView) itemView.findViewById(R.id.card_1);
            card_2 = (TextView) itemView.findViewById(R.id.card_2);
            card_3 = (TextView) itemView.findViewById(R.id.card_3);
            card_4 = (TextView) itemView.findViewById(R.id.card_4);
            card_5 = (TextView) itemView.findViewById(R.id.card_5);
            card_6 = (TextView) itemView.findViewById(R.id.card_6);
            card_7 = (TextView) itemView.findViewById(R.id.card_7);
            card_8 = (TextView) itemView.findViewById(R.id.card_8);
            avarage = (TextView) itemView.findViewById(R.id.avarage);
            description = (TextView) itemView.findViewById(R.id.description);
            id = (TextView) itemView.findViewById(R.id.id);
            btn_delete = (Button) itemView.findViewById(R.id.delete);
        }
    }

    public void add(data d) {
        data1.add(d);
        notifyItemInserted(this.data1.size() - 1);
    }

    public void removeAt(int position) {
        data1.remove(position);
        notifyItemRemoved(position);
        notifyItemRangeChanged(position, data1.size());
    }
}

کلاس data:

package com.example.soroush.royalkade;

public class data {
    public String card_1;
    public String card_2;
    public String card_3;
    public String card_4;
    public String card_5;
    public String card_6;
    public String card_7;
    public String card_8;
    public String avarage;
    public String description;
    public int id;

    public String getCard_1() {
        return card_1;
    }

    public void setCard_1(String card_1) {
        this.card_1 = card_1;
    }

    public String getCard_2() {
        return card_2;
    }

    public void setCard_2(String card_2) {
        this.card_2 = card_2;
    }

    public String getCard_3() {
        return card_3;
    }

    public void setCard_3(String card_3) {
        this.card_3 = card_3;
    }

    public String getCard_4() {
        return card_4;
    }

    public void setCard_4(String card_4) {
        this.card_4 = card_4;
    }

    public String getCard_5() {
        return card_5;
    }

    public void setCard_5(String card_5) {
        this.card_5 = card_5;
    }

    public String getCard_6() {
        return card_6;
    }

    public void setCard_6(String card_6) {
        this.card_6 = card_6;
    }

    public String getCard_7() {
        return card_7;
    }

    public void setCard_7(String card_7) {
        this.card_7 = card_7;
    }

    public String getCard_8() {
        return card_8;
    }

    public void setCard_8(String card_8) {
        this.card_8 = card_8;
    }

    public String getAvarage() {
        return avarage;
    }

    public void setAvarage(String avarage) {
        this.avarage = avarage;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public data(String card_1, String card_2, String card_3, String card_4, String card_5, String card_6, String card_7, String card_8, String avarage, String description,int id) {
        this.card_1 = card_1;
        this.card_2 = card_2;
        this.card_3 = card_3;
        this.card_4 = card_4;
        this.card_5 = card_5;
        this.card_6 = card_6;
        this.card_7 = card_7;
        this.card_8 = card_8;
        this.avarage = avarage;
        this.description = description;
        this.id = id;
    }
}

کلاس دیتابیس:

package com.example.soroush.royalkade;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import java.util.ArrayList;

public class DataBaseHelper extends SQLiteOpenHelper {
    Context context;

    private static final String DATABASE_NAME="anbar_deck";
    private static final int DATABASE_VERSION = 1;
    private static final String main_table = "decks";
    private static final String table1 = "CREATE TABLE "+main_table+"(card_1    TEXT  NOT NULL,card_2    TEXT NOT NULL,card_3    TEXT  NOT NULL,card_4 TEXT NOT NULL,card_5    TEXT NOT NULL,card_6    TEXT NOT NULL,card_7    TEXT NOT NULL,card_8    TEXT NOT NULL,avarage    TEXT NOT NULL,description    TEXT NOT NULL,ID INT AUTO_INCREMENT)";

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

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(table1);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {
        db.execSQL("DROP TABLE IF EXISTS " + main_table);

        onCreate(db);
    }

    public void insertIntoDB(String card_1, String card_2, String card_3, String card_4, String card_5, String card_6, String card_7, String card_8, String avarage, String description){
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put("card_1", card_1);
        values.put("card_2", card_2);
        values.put("card_3", card_3);
        values.put("card_4", card_4);
        values.put("card_5", card_5);
        values.put("card_6", card_6);
        values.put("card_7", card_7);
        values.put("card_8", card_8);
        values.put("avarage", avarage);
        values.put("description", description);

        db.insert(main_table, null, values);
        db.close();
    }

    public ArrayList<data> getDataFromDB(){
        String query = "select * from "+main_table;
        ArrayList<data> list = new ArrayList<>();

        data model = null;

        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(query,null);

        if (cursor.moveToFirst()){
            do {
                String card_1 = cursor.getString(0);
                String card_2 = cursor.getString(1);
                String card_3 = cursor.getString(2);
                String card_4 = cursor.getString(3);
                String card_5 = cursor.getString(4);
                String card_6 = cursor.getString(5);
                String card_7 = cursor.getString(6);
                String card_8 = cursor.getString(7);
                String avarage = cursor.getString(8);
                String description = cursor.getString(9);
                int id = cursor.getInt(10);
                model = new data(card_1,card_2,card_3,card_4,card_5,card_6,card_7,card_8,avarage,description,id);
                list.add(model);
            }while (cursor.moveToNext());
        }

        return list;
    }
    public int getcount(){
        String query = "select * from "+main_table;
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor curser = db.rawQuery(query,null);
        int result;
        result = curser.getCount();
        return result;
    }
    public void delete(int id){
        String query = "DELETE from "+main_table+"where ID ="+id;
        SQLiteDatabase db = this.getWritableDatabase();
        db.execSQL(query);
        db.close();
    }
}

mainactivity:

rc = (RecyclerView) findViewById(R.id.rc);
        DataBaseHelper helpher = new DataBaseHelper(anbar_deck.this);
        data1 = helpher.getDataFromDB();
        rc.setHasFixedSize(true);
        final Recycler_View_Adapter mAdapter = new Recycler_View_Adapter(data1,getApplicationContext());
        rc.setAdapter(mAdapter);
        rc.setLayoutManager(new LinearLayoutManager(this));
        RecyclerView.ItemAnimator itemAnimator = new DefaultItemAnimator();
        itemAnimator.setAddDuration(500);
        itemAnimator.setRemoveDuration(500);
        rc.setItemAnimator(itemAnimator);

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط fahmide
      با سلام
      من توی پروژم یک ExpandableListView دارم و یه دیتابیس توی دیتابیس با استفاده از کد والد ، والد هرکدوم از فرزندان مشخص میشه. مسله اینه که کاربر امکان اضافه کردن والد و فرزند رو توی دیتابیس داره من هرکاری میکنم درست لود نمیشه اگه ممکنه راهنمایی کنین
    • توسط hamidreza.kh
      سلام خسته نباشید چندتا سوال و درخواست داشتم
      دستورات mysql رو کسی دقیقا میتونه بهم بده؟ مثلا سه تا فرگمنت توی یه اکتیوتی دارم ، میخوام یکیش پست هام رو به ترتیب جدیدترین پست ها بگیره از دیتابیس یا حالا سرور ، تب دوم میخوام همون اطلاعات رو بر حسب مثلا تعداد ویو(بیشترین ها) بهم بده و یه فرگمنت دیگه هم میخوام اونایی که مثلا دیده شده رو نمایش بده !  
      برای مثال اول که مشکلی ندارم همه پست هارو میتونم به ترتیب بگیرم اما برای 2 مثال دیگه اللخصوص مثال دوم یکم گیجم ! ممنون میشم راهنمایی کنید
       
      سوال بعدیم هم اینه ، مثلا کافه بازار حالا که من میخوام مثلا 3 تا فرگمنت رو توی یه اکتیویتی بسازم ، و اطلاعات درونش قرار بدم ، باید برای هر فرگمنت یه آداپتر بسازم دیگه؟که دیتا های خاص هرکدوم رو نشون بده !
      اگه این مسئله درست باشه یه اپی مثل اپ کافه بازار تو قسمت برترین ها 3 تا فرگمنت داره توی یک اکتیویتی ، خب؟ بعد این 3 تا یه عالمه آیتم گرفتن ! چرا اپ کرش نمیشه؟ یا اینکه برای کرش شدن اپ این در حد اون قسمت از اپ کافه بازار ، اون دیتا ها خیلی ناچیز اند؟ و کلا اگه مثلا عکس زیاد داشته باشیم برای بهینه سازی اپ توی فرگمنت های یه اکتیویتی چی رو پیشنهاد میکنید؟
      و سوال اخر اینکه از چه نوع ویو پیجری در مثلا همون قسمت برترین های کافه بازار استقاده شده؟!(fragment view pager یا fragment state view pager)؟ و اینکه چه موقه از این و چه موقه از اون استفاده کنیم؟(لطفا با ذکر مثال بفرمایید)
    • توسط مهندس
      سلام دوستان.
      چجوری میتونم ساعت رو در دیتابیس sqlite ذخیره کنم؟؟
      منظورم اینه ک من یکسری داده دارم میخام وقتی ثبت دیتابیس شد، ساعتی ک کاربر داده رو ثبت میکنه هم در یک فیلد ثبت بشه.
      من یه فیلد با نوع TIME در دیتابیس گذاشتم، اما نمیدونم چجوری و با چه توابعی ساعت رو ذخیره کنم؟؟
      در ضمن راهی هست ک ساعت واقعی ثبت بشه؟؟
      یعنی اینکه اگه یه وقت کاربر ساعت گوشیشو تغییر داد، بازم تایم واقعی time zone ایران ثبت بشه ؟؟؟
    • توسط Majid Ebrahimi
      برای اینکار دو روش وجود دارد:
      1- اینکه عکس را در دیتابیس ذخیره وسپس در برنامه نمایش دهیم.
      2-اینکه نام عکس را در دیتابیس ذخیره و خود تصاویر را در پوشه ریسورس برنامه مثلا در drawable ذخیره و سپس با توجه به نام آن تصویر را در ایمیج ویو لود کنیم.
      ما روش دوم را در این اموزش بررسی خواهیم کرد.
      به کد زیر توجه کنید: ImageView img; Database myDbHelper; SQLiteDatabase db; img = (ImageView) findViewById(R.id.imageView1); db = myDbHelper.getWritableDatabase(); String s = getIntent().getStringExtra("id"); Cursor c = db.rawQuery("select * from student where stu_id = " + id, null); if (c.moveToNext()) { img_name = c.getString(c.getColumnIndex("img")); Log.d("img", img_name); String uri = "drawable/" + img_name; // int imageResource = R.drawable.icon; int imageResource = getResources().getIdentifier(uri, null, getPackageName()); Drawable image = getResources().getDrawable(imageResource); img.setImageDrawable(image); } همانطور که مشخص است بعد از زدن یک کوئری در دیتابیس نام تصویر مربوط به دانشجوی مورد نظر را گرفته و سپس id ایمیج مورد نظر را در ریسورس های برنامه به دست آورده و آن را در ایمیج ویو نشان می دهد.
      امیدوارم این آموزش مقبول افتد.
    • توسط b.kordtabar
      با سلام
      می خواهم لیستی از داده ها را در پایگاه داده sqlite اندروید ذخیره کنم داده مربوط به ستون آخر نمایش داده نمی شود
      کد مربوطه را ارسال می کنم، اگر می توانید راهنمایی کنید.
      package com.example.t.newsqlite; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import java.util.ArrayList; import java.util.List; public class DatabaseHandler extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 1; private static final String DATABASE_NAME = "carManager"; private static final String TABLE_CONTACTS = "cars"; private static final String KEY_ID = "id"; private static final String KEY_BRAND = "brand"; private static final String KEY_WORKED = "worked"; private static final String KEY_MODEL="model"; public DatabaseHandler(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "(" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_BRAND + " TEXT," + KEY_WORKED + " TEXT," + KEY_MODEL + " TEXT " + ")"; db.execSQL(CREATE_CONTACTS_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS); onCreate(db); } public void addContact(Car car) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(KEY_BRAND, car.getBrand()); values.put(KEY_WORKED, car.getWorked()); values.put(KEY_MODEL, car.getModel()); db.insert(TABLE_CONTACTS, null, values); db.close(); } public Car getContact(int id) { SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.query(TABLE_CONTACTS, new String[]{KEY_ID, KEY_BRAND, KEY_WORKED, KEY_MODEL}, KEY_ID + "=?", new String[]{String.valueOf(id)}, null, null, null, null); if (cursor != null) cursor.moveToFirst(); Car car = new Car(Integer.parseInt(cursor.getString(0)), cursor.getString(1), cursor.getString(2),cursor.getString(3)); // return contact return car; } public List<Car> getAllContacts() { List<Car> contactList = new ArrayList<Car>(); // Select All Query String selectQuery = "SELECT * FROM " + TABLE_CONTACTS; SQLiteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(selectQuery, null); // looping through all rows and adding to list if (cursor.moveToFirst()) { do { Car car = new Car(); car.setID(Integer.parseInt(cursor.getString(0))); car.setBrand(cursor.getString(1)); car.setWorked(cursor.getString(2)); car.setModel(cursor.getString(3)); // Adding contact to list contactList.add(car); } while (cursor.moveToNext()); } // return contact list return contactList; } public int getContactsCount() { String countQuery = "SELECT * FROM " + TABLE_CONTACTS; SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.rawQuery(countQuery, null); cursor.close(); // return count return cursor.getCount(); } public int updateContact(Car car) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(KEY_BRAND, car.getBrand()); values.put(KEY_WORKED, car.getWorked()); values.put(KEY_MODEL, car.getModel()); // updating row return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?", new String[] { String.valueOf(car.getID()) }); } public void deleteContact(Car contact) { SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_CONTACTS, KEY_ID + " = ?", new String[] { String.valueOf(contact.getID()) }); db.close(); } } package com.example.t.newsqlite; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.TextView; public class AndroidSQLiteTutorialActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); DatabaseHandler db = new DatabaseHandler(this); /** * CRUD Operations * */ // Inserting Contacts Log.d("Insert: ", "Inserting .."); db.addContact(new Car("رنو","کارکرده","GGF")); db.addContact(new Car("تویوتا","صفر کیلومتر","FD")); db.addContact(new Car("بیوک", "حواله","GDG")); // Reading all contacts Log.d("Reading: ", "Reading all contacts.."); List<Car> car = db.getAllContacts(); for (Car cn : car) { String log = "Id: " + cn.getID() + " ,Brand: " + cn.getBrand() + " ,Worked: " + cn.getWorked() + " ,Model: " + cn.getModel(); // Writing Contacts to log Log.d("Name: ", log); } } } package com.example.t.newsqlite; public class Car { //private variables int id; String brand; String worked; String model; public Car(){ } public Car(int id, String brand,String worked,String model){ this.id = id; this.brand=brand; this.worked=worked; this.model=model; } // constructor public Car(String brand,String worked,String model){ this.brand=brand; this.worked=worked; this.model=model; } public int getID(){ return this.id; } public void setID(int id){ this.id = id; } // getting name public String getBrand(){ return this.brand; } // setting name public void setBrand(String brand){ this.brand = brand; } // getting phone number public String getWorked(){ return this.worked; } // setting phone number public void setWorked(String worked){ this.worked = worked; } public String getModel(){ return this.model; } public void setModel(String model){ this.model = model; } }  

  • دوره آموزشی اندروید ایران کانادا آموزش ویدئویی اندروید آموزش برنامه نویسی اندروید اندروید کاپ دوره آنلاین اندروید کتاب های آموزشی اندروید بسته آموزشی اندروید دوره برنامه نویسی اندروید آموزش Kotlin آموزش برنامه نویسی ios
  • فایل