I have a simple form.Here is my form
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