Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I created a Simple Calculator for my mobile app class and I am having trouble. M

ID: 3551640 • Letter: I

Question

I created a Simple Calculator for my mobile app class and I am having trouble.

My code works but when I click a button, nothing happens. My calculations should come from a websie but nohting is working.

package com.dietel.simplecalculator;


import java.io.IOException;

import java.io.InputStream;


import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.client.HttpClient;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.protocol.BasicHttpContext;

import org.apache.http.protocol.HttpContext;


import android.os.AsyncTask;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;


public class MainActivity extends Activity {


protected String oper;

protected String a;

protected String b;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

public void onClick(View arg0) {

Button plus = (Button) findViewById(R.id.PlusButton);

Button minus = (Button) findViewById(R.id.MinusButton);

Button mult = (Button) findViewById(R.id.MultiplyButton);

Button div = (Button) findViewById(R.id.DivideButton);

if (arg0 == (Button) plus)

{

oper="Add";

}

else if (arg0 == (Button) minus)

{

oper="Subtract";

}

else if (arg0 == (Button) mult)

{

oper="Multiply";

}

else if (arg0 == (Button) div)

{

oper="Divide";

}

Toast.makeText(MainActivity.this,oper, Toast.LENGTH_LONG).show();//for testing

plus.setClickable(false);

minus.setClickable(false);

mult.setClickable(false);

div.setClickable(false);

new LongRunningGetIO().execute();

}


@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

private class LongRunningGetIO extends AsyncTask<Void, Void, String> {


protected String getASCIIContentFromEntity(HttpEntity entity)

throws IllegalStateException, IOException {

InputStream in = entity.getContent();

StringBuffer out = new StringBuffer();

int n = 1;

while (n > 0) {

byte[] b = new byte[4096];

n = in.read(b);

if (n > 0)

out.append(new String(b, 0, n));

}

return out.toString();

}


@Override

protected String doInBackground(Void... params) {

HttpClient httpClient = new DefaultHttpClient();

HttpContext localContext = new BasicHttpContext();

EditText op1= (EditText) findViewById(R.id.OperandOneEditText);

EditText op2= (EditText) findViewById(R.id.OperandTwoEditText);

HttpGet httpGet = new HttpGet(

"http://www.html2xml.nl/Services/Calculator/Version1/Calculator.asmx/"+oper+"&a="+op1.getText()+"&b="+op2.getText()); //TODO operands

String text = null;

try {

HttpResponse response = httpClient.execute(httpGet,

localContext);

HttpEntity entity = response.getEntity();

text = getASCIIContentFromEntity(entity);

} catch (Exception e) {

return e.getLocalizedMessage();

}

return text;

}


protected void onPostExecute(String results) {

if (results != null) {

EditText et = (EditText) findViewById(R.id.ResultEditText);

et.setText(results);

}

Button plus = (Button) findViewById(R.id.PlusButton);

Button minus = (Button) findViewById(R.id.MinusButton);

Button mult = (Button) findViewById(R.id.MultiplyButton);

Button div = (Button) findViewById(R.id.DivideButton);

plus.setClickable(true);

minus.setClickable(true);

mult.setClickable(true);

div.setClickable(true);

Toast.makeText(MainActivity.this,results, Toast.LENGTH_LONG).show();//for testing

}

}


}

Explanation / Answer

Well, I think this SourceCode will work for You :-


package com.dietel.simplecalculator;


import java.io.IOException;

import java.io.InputStream;


import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.client.HttpClient;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.protocol.BasicHttpContext;

import org.apache.http.protocol.HttpContext;


import android.os.AsyncTask;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

public class MainActivity extends Activity {

public String str ="";

Character op = 'q';

int i,num,numtemp;

EditText showResult;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

  

showResult = (EditText)findViewById(R.id.result_id);

}

public void btn1Clicked(View v){

insert(1);

  

}

public void btn2Clicked(View v){

insert(2);

  

}

public void btn3Clicked(View v){

insert(3);

  

}

public void btn4Clicked(View v){

insert(4);

  

}

public void btn5Clicked(View v){

insert(5);

  

}

public void btn6Clicked(View v){

insert(6);

}

public void btn7Clicked(View v){

insert(7);

  

}

public void btn8Clicked(View v){

insert(8);

  

}

public void btn9Clicked(View v){

insert(9);

  

}

public void btnplusClicked(View v){

perform();

op = '+';

  

}

public void btnminusClicked(View v){

perform();

op = '-';

  

}

public void btndivideClicked(View v){

perform();

op = '/';

  

}

public void btnmultiClicked(View v){

perform();

op = '*';

  

}

public void btnequalClicked(View v){

calculate();

  

}

public void btnclearClicked(View v){

reset();

}

private void reset() {

// TODO Auto-generated method stub

str ="";

op ='q';

num = 0;

numtemp = 0;

showResult.setText("");

}

private void insert(int j) {

// TODO Auto-generated method stub

str = str+Integer.toString(j);

num = Integer.valueOf(str).intValue();

showResult.setText(str);

  

}

private void perform() {

// TODO Auto-generated method stub

str = "";

numtemp = num;

}

private void calculate() {

// TODO Auto-generated method stub

if(op == '+')

num = numtemp+num;

else if(op == '-')

num = numtemp-num;

else if(op == '/')

num = numtemp/num;

else if(op == '*')

num = numtemp*num;

showResult.setText(""+num);

}

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote