dimanche 3 juin 2018

How to save the old state of a checkbox?

I want to save the old state of checkbox With checkbox I want to update my data in database. When user changes the activity I lose his checked checkbox and when he again comes to that activity then every checkbox is unchecked and when he click to save with new values it will not saved because I set date as primary key in database. If I update the data with new values I lost my old data....

CheckBoxActivity.java

package com.example.shakeelmughal.assanislam;

import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.preference.PreferenceManager;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.Toast;

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

public class NamazCounterActivity extends AppCompatActivity {

    DatabaseHelper mydb;
    CheckBox cb1,cb2,cb3,cb4,cb5;
    Button B1,B2,B3;
    int vcb1=0,vcb2=0,vcb3=0,vcb4=0,vcb5=0,vet=0;
    Date date = new Date();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_namaz_counter);
        mydb = new DatabaseHelper(this);


        SharedPreferences settings = getSharedPreferences("mysettings", 0);
        SharedPreferences.Editor editor = settings.edit();

        cb1 = findViewById(R.id.namaz1);
        cb2 = findViewById(R.id.namaz2);
        cb3 = findViewById(R.id.namaz3);
        cb4 = findViewById(R.id.namaz4);
        cb5 = findViewById(R.id.namaz5);
        B1 = findViewById(R.id.result);

        B2 = (Button) findViewById(R.id.dateee);
        B3 = findViewById(R.id.sumr);

        c_date();

        B1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                InsertingData();
            }
        });

        B3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Cursor cr = mydb.getAllData();
                if(cr.getCount() == 0)
                {
                    showData("Error","No Data Found");
                    return;
                }

                StringBuffer buffer = new StringBuffer();

                while (cr.moveToNext())
                {
                    buffer.append("ID: "+cr.getString(0)+ "\n");
                    buffer.append("Fajar: "+cr.getString(1)+ "\n");
                    buffer.append("Zohr: "+cr.getString(2)+ "\n");
                    buffer.append("Asr: "+cr.getString(3)+ "\n");
                    buffer.append("Magrib: "+cr.getString(2)+ "\n");
                    buffer.append("Isha: "+cr.getString(3)+ "\n");
                }

                showData("Data",buffer.toString());
            }
        });
        //home button
        if (getSupportActionBar() != null) {
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            getSupportActionBar().setDisplayShowHomeEnabled(true);
        }}

    //function for going back to previous activity
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if(item.getItemId() == android.R.id.home)
            finish();
        return super.onOptionsItemSelected(item);
    }


    public void InsertingData()
    {
        if(cb1.isChecked())
        {
            vcb1 = 1;
        }
        else
        {
            vcb1 = 0;
        }
        if(cb2.isChecked())
        {
            vcb2 = 1;
            cb2.setChecked(true);
        }
        else
        {
            vcb2 = 0;
        }
        if(cb3.isChecked())
        {
            vcb3 = 1;
            cb3.setChecked(true);
        }
        else
        {
            vcb3 = 0;
        }
        if(cb4.isChecked())
        {
            vcb4 = 1;
            cb4.setChecked(true);
        }
        else
        {
            vcb4 = 0;
        }
        if(cb5.isChecked())
        {
            vcb5 = 1;
            cb5.setChecked(true);
        }
        else
        {
            vcb5 = 0;
        }

        boolean result = mydb.InsertData(B2.getText().toString(),Integer.toString(vcb1),Integer.toString(vcb2),Integer.toString(vcb3),Integer.toString(vcb4),Integer.toString(vcb5));
        if(result == true)
        {
            Toast.makeText(NamazCounterActivity.this, "Prayer Saved",Toast.LENGTH_LONG).show();
        }
        else
        {
            Toast.makeText(NamazCounterActivity.this, "Some Error", Toast.LENGTH_LONG).show();
        }
    }

    public void Updateingdata()
    {
        if(cb1.isChecked())
        {
            vcb1 = 1;
        }
        else
        {
            vcb1 = 0;
        }
        if(cb2.isChecked())
        {
            vcb2 = 1;
        }
        else
        {
            vcb2 = 0;
        }
        if(cb3.isChecked())
        {
            vcb3 = 1;
        }
        else
        {
            vcb3 = 0;
        }
        if(cb4.isChecked())
        {
            vcb4 = 1;
        }
        else
        {
            vcb4 = 0;
        }
        if(cb5.isChecked())
        {
            vcb5 = 1;
        }
        else
        {
            vcb5 = 0;
        }

        boolean res = mydb.UpdateData(B2.getText().toString(),Integer.toString(vcb1),Integer.toString(vcb2),Integer.toString(vcb3),Integer.toString(vcb4),Integer.toString(vcb5));
        if(res == true)
        {
            Toast.makeText(NamazCounterActivity.this,"Data Updated",Toast.LENGTH_SHORT).show();
        }
        else
        {
            Toast.makeText(NamazCounterActivity.this,"Data Not Updated",Toast.LENGTH_SHORT).show();
        }
    }

    //for date ()
    public void c_date()
    {
        date.setTime(System.currentTimeMillis()); //set to current time
        B2.setText(date.toString());
        SimpleDateFormat dateFormat = new SimpleDateFormat("EEEEEEEEE, MMM dd, yyyy");
        B2.setText(dateFormat.format(date));

    }
    public void showData(String title, String message)
    {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setCancelable(true);
        builder.setTitle(title);
        builder.setMessage(message);
        builder.show();
    }
}

Its XML file

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.shakeelmughal.assanislam.NamazCounterActivity">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/scrollView2">

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

            <CheckBox
                android:id="@+id/namaz1"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true"
                android:layout_marginLeft="47dp"
                android:layout_marginStart="47dp"
                android:layout_marginTop="50dp"
                android:background="?android:attr/listChoiceIndicatorMultiple"
                android:button="@null"
                android:theme="@style/forCheckBox" />

            <CheckBox
                android:id="@+id/namaz2"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_alignLeft="@+id/namaz1"
                android:layout_alignStart="@+id/namaz1"
                android:layout_below="@+id/namaz1"
                android:layout_marginTop="12dp"
                android:button="@null"
                android:background="?android:attr/listChoiceIndicatorMultiple"
                android:theme="@style/forCheckBox" />

            <CheckBox
                android:id="@+id/namaz3"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_alignLeft="@+id/namaz2"
                android:layout_alignStart="@+id/namaz2"
                android:layout_below="@+id/namaz2"
                android:layout_marginTop="19dp"
                android:button="@null"
                android:background="?android:attr/listChoiceIndicatorMultiple"
                android:theme="@style/forCheckBox" />

            <CheckBox
                android:id="@+id/namaz4"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_alignLeft="@+id/namaz3"
                android:layout_alignStart="@+id/namaz3"
                android:layout_below="@+id/namaz3"
                android:layout_marginTop="19dp"
                android:button="@null"
                android:background="?android:attr/listChoiceIndicatorMultiple"
                android:theme="@style/forCheckBox" />

            <CheckBox
                android:id="@+id/namaz5"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_alignLeft="@+id/namaz4"
                android:layout_alignStart="@+id/namaz4"
                android:layout_below="@+id/namaz4"
                android:layout_marginTop="11dp"
                android:button="@null"
                android:background="?android:attr/listChoiceIndicatorMultiple"
                android:theme="@style/forCheckBox" />

            <TextView
                android:id="@+id/textView20"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBaseline="@+id/namaz1"
                android:layout_alignBottom="@+id/namaz1"
                android:layout_marginLeft="41dp"
                android:layout_marginStart="41dp"
                android:layout_toEndOf="@+id/result"
                android:layout_toRightOf="@+id/result"
                android:text="نمازِ فجر"
                android:textColor="#000"
                android:textSize="20sp" />

            <TextView
                android:id="@+id/textView21"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignEnd="@+id/textView20"
                android:layout_alignRight="@+id/textView20"
                android:layout_alignTop="@+id/namaz2"
                android:layout_marginTop="14dp"
                android:text=" نمازِ ظہر / جمعہ"
                android:textColor="#000"
                android:textSize="20sp" />

            <TextView
                android:id="@+id/textView22"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignEnd="@+id/textView21"
                android:layout_alignRight="@+id/textView21"
                android:layout_alignTop="@+id/namaz3"
                android:layout_marginTop="11dp"
                android:text="نمازِ عصر"
                android:textColor="#000"
                android:textSize="20sp" />

            <TextView
                android:id="@+id/textView23"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBaseline="@+id/namaz4"
                android:layout_alignBottom="@+id/namaz4"
                android:layout_alignEnd="@+id/textView21"
                android:layout_alignRight="@+id/textView21"
                android:text="نمازِ مغرب"
                android:textColor="#000"
                android:textSize="20sp" />

            <TextView
                android:id="@+id/textView24"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignEnd="@+id/textView23"
                android:layout_alignRight="@+id/textView23"
                android:layout_alignTop="@+id/namaz5"
                android:layout_marginTop="12dp"
                android:text="نمازِ عشاء"
                android:textColor="#000"
                android:textSize="20sp"/>

            <Button
                android:id="@+id/result"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/textView24"
                android:layout_centerHorizontal="true"
                android:text="Save" />

            <Button
                android:id="@+id/dateee"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_above="@+id/textView20"
                android:layout_centerHorizontal="true" />

            <Button
                android:id="@+id/sumr"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/result"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="13dp"
                android:text="View Summery" />

        </RelativeLayout>

    </ScrollView>
</RelativeLayout>




Aucun commentaire:

Enregistrer un commentaire