lundi 7 mars 2016

android database and saving value in listview

I have a simple form.Here is my formenter image description here

I want to fill the form calculate the total amount and save it in a list.I am using sqlite database.Here is the code

       package com.globaltech;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import support.ExampleDBHelper;

public class CreateorEditActivity extends AppCompatActivity implements View.OnClickListener{

        private ExampleDBHelper dbHelper ;
        EditText productEditText;
        EditText qtyEditText;
        EditText rateEditText;
        EditText amountEditText;
        String oper = "";

        Button saveButton;
        Button buttonTotal;
        LinearLayout buttonLayout;
        Button editButton, deleteButton;

        int personID;


        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);

                personID = getIntent().getIntExtra(SavedForm.KEY_EXTRA_CONTACT_ID, 0);

                setContentView(R.layout.activity_createor_edit);
                productEditText = (EditText) findViewById(R.id.editTextProduct);
                qtyEditText = (EditText) findViewById(R.id.editTextQty);
                rateEditText = (EditText) findViewById(R.id.editTextRate);
                amountEditText= (EditText) findViewById(R.id.totalAmount);

                buttonTotal= (Button) findViewById(R.id.buttonTotal);
                buttonTotal.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                                float num1 = 0;
                                float num2 = 0;
                                float result = 0;

                                // check if the fields are empty
                                if (TextUtils.isEmpty(qtyEditText.getText().toString())
                                        || TextUtils.isEmpty(rateEditText.getText().toString())) {
                                        return;
                                }

                                // read EditText and fill variables with numbers
                                num1 = Float.parseFloat(qtyEditText.getText().toString());
                                num2 = Float.parseFloat(rateEditText.getText().toString());

                                switch (v.getId()) {
                                        case R.id.buttonTotal:
                                                oper = "*";
                                                result = num1 * num2;
                                                break;
                                }
                                amountEditText.setText("   " + result);
                        }
                });
                saveButton = (Button) findViewById(R.id.saveButton);
                saveButton.setOnClickListener(this);
                buttonLayout = (LinearLayout) findViewById(R.id.buttonLayout);
                editButton = (Button) findViewById(R.id.editButton);
                editButton.setOnClickListener(this);
                deleteButton = (Button) findViewById(R.id.deleteButton);
                deleteButton.setOnClickListener(this);

                dbHelper = new ExampleDBHelper(this);

                if(personID > 0) {
                        saveButton.setVisibility(View.GONE);
                        buttonLayout.setVisibility(View.VISIBLE);

                        Cursor rs = dbHelper.getPerson(personID);
                        rs.moveToFirst();
                        String productName = rs.getString(rs.getColumnIndex(ExampleDBHelper.PERSON_COLUMN_PRODUCT));
                        int productQuantity = rs.getInt(rs.getColumnIndex(ExampleDBHelper.PERSON_COLUMN_QUANTITY));
                        float productRate = rs.getFloat(rs.getColumnIndex(ExampleDBHelper.PERSON_COLUMN_RATE));
                        double productAmount = rs.getDouble(rs.getColumnIndex(ExampleDBHelper.PERSON_COLUMN_AMOUNT));
                        if (!rs.isClosed()) {
                                rs.close();
                        }

                        productEditText.setText(productName);
                        productEditText.setFocusable(false);
                        productEditText.setClickable(false);

                        qtyEditText.setText((CharSequence) (productQuantity +""));
                        qtyEditText.setFocusable(false);
                        qtyEditText.setClickable(false);

                        rateEditText.setText((CharSequence) (productRate + ""));
                        rateEditText.setFocusable(false);
                        rateEditText.setClickable(false);

                        amountEditText.setText((CharSequence) (productAmount + ""));
                        amountEditText.setFocusable(false);
                        amountEditText.setClickable(false);
                }

        }

        @Override
        public void onClick(View view) {
                switch (view.getId()) {
                        case R.id.saveButton:
                                persistPerson();
                                return;
                        case R.id.editButton:
                                saveButton.setVisibility(View.VISIBLE);
                                buttonLayout.setVisibility(View.GONE);
                                productEditText.setEnabled(true);
                                productEditText.setFocusableInTouchMode(true);
                                productEditText.setClickable(true);

                                qtyEditText.setEnabled(true);
                                qtyEditText.setFocusableInTouchMode(true);
                                qtyEditText.setClickable(true);

                                rateEditText.setEnabled(true);
                                rateEditText.setFocusableInTouchMode(true);
                                rateEditText.setClickable(true);

                                amountEditText.setEnabled(true);
                                amountEditText.setFocusableInTouchMode(true);
                                amountEditText.setClickable(true);

                                return;
                        case R.id.deleteButton:
                                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                                builder.setMessage(R.string.deletePerson)
                                        .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
                                                public void onClick(DialogInterface dialog, int id) {
                                                        dbHelper.deletePerson(personID);
                                                        Toast.makeText(getApplicationContext(), "Deleted Successfully", Toast.LENGTH_SHORT).show();
                                                        Intent intent = new Intent(getApplicationContext(), SavedForm.class);
                                                        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                                        startActivity(intent);
                                                }
                                        })
                                        .setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
                                                public void onClick(DialogInterface dialog, int id) {
                                                        // User cancelled the dialog
                                                }
                                        });
                                AlertDialog d = builder.create();
                                d.setTitle("Delete Person?");
                                d.show();
                                return;
                }
        }


        public void persistPerson() {
                if(personID > 0) {
                        if(dbHelper.updatePerson(personID, productEditText.getText().toString(),
                                Integer.parseInt(qtyEditText.getText().toString()),
                                Float.parseFloat(rateEditText.getText().toString()),
                                Double.parseDouble(amountEditText.getText().toString()))) {
                                Toast.makeText(getApplicationContext(), "Person Update Successful", Toast.LENGTH_SHORT).show();
                                Intent intent = new Intent(getApplicationContext(), SavedForm.class);
                                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                startActivity(intent);
                        }
                        else {
                                Toast.makeText(getApplicationContext(), "Person Update Failed", Toast.LENGTH_SHORT).show();
                        }
                }
                else {
                        if(dbHelper.insertPerson(productEditText.getText().toString(),
                                Integer.parseInt(qtyEditText.getText().toString()),
                                Float.parseFloat(rateEditText.getText().toString()),
                                Double.parseDouble(amountEditText.getText().toString()))) {
                                Toast.makeText(getApplicationContext(), "Person Inserted", Toast.LENGTH_SHORT).show();
                        }
                        else{
                                Toast.makeText(getApplicationContext(), "Could not Insert person", Toast.LENGTH_SHORT).show();
                        }
                        Intent intent = new Intent(getApplicationContext(), SavedForm.class);
                        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        startActivity(intent);
                }
        }



        @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_createor_edit, 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);
        }
}

please help this doesnot works.I tried alot but generates some error each time.I couldnot fix them.Furthermore I also want to edit and delete this form.

Aucun commentaire:

Enregistrer un commentaire