
.I'm not getting the correct answers. My goal is to remove the button and just do the calculation when the 2nd or 3rd spinner item is selected.. I think my problem maybe with the spinner listeners but im not sure(not getting any errors just not getting the correct answers, I know the conversion functions are correct).....
My code is not complete, just not working correctly so far
- Code: Select all
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
public class ConcentrationActivity extends Activity implements OnItemSelectedListener, View.OnClickListener {
/* private TextView selection;*/
Button calc;
EditText myinput;
TextView myoutput;
float temp;
int flag=0;
int secondFlag=0;
Spinner spinner,spinner2,spinner3;
String[] categories = {"Temperature","Liquids","Length/Distance","Area","Weight"};
String[] temperatures = {"Celsius","Fahrenheit","Kelvin"};
String[] liquids = {"Teaspoon","Tablespoon","Fl oz","Cups","Pints","Quarts","Gallons"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories);
ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, temperatures);
ArrayAdapter<String> adapter3 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, liquids);
calc = (Button) findViewById(R.id.calculate);
calc.setOnClickListener(this);
myinput = (EditText) findViewById(R.id.Input);
myinput.setText("0");
myoutput = (TextView) findViewById(R.id.output);
spinner = (Spinner) findViewById(R.id.spinner1);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
spinner2 = (Spinner) findViewById(R.id.spinner2);
spinner2.setAdapter(adapter2);
spinner2.setOnItemSelectedListener(this);
spinner3 = (Spinner) findViewById(R.id.spinner3);
spinner3.setAdapter(adapter3);
spinner3.setOnItemSelectedListener(this);
}
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
// TODO Auto-generated method stub
int position = spinner.getSelectedItemPosition();
int position2 = spinner2.getSelectedItemPosition();
int position3 = spinner3.getSelectedItemPosition();
if (position == 0)
{
if (secondFlag == 0 )
{
SetDrops();
}
secondFlag=1;
if(position2 == 0 && position3 == 1)
{
//flag = 0;
//celtofah(temp);
myoutput.setText(Float.toString(celtofah(temp)));
}
else if (position2 == 0 && position3 == 2)
{
//flag = 1;
//celtokel(temp);
myoutput.setText(Float.toString(celtokel(temp)));
}
else if (position2 == 1 && position3 == 0)
{
//flag = 2;
//fahtocel(temp);
myoutput.setText(Float.toString(fahtocel(temp)));
}
else if (position2 == 1 && position3 == 2)
{
//flag = 3;
myoutput.setText(Float.toString(fahtokel(temp)));
}
else if (position2 == 2 && position3 == 0)
{
//flag = 4;
myoutput.setText(Float.toString(keltocel(temp)));
}
else if (position2 == 2 && position3 == 1)
{
//flag = 5;
myoutput.setText(Float.toString(keltofah(temp)));
}
}
else if (position == 1)
{
ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, liquids );
spinner2 = (Spinner) findViewById(R.id.spinner2);
spinner2.setAdapter(adapter2);
spinner2.setOnItemSelectedListener(this);
ArrayAdapter<String> adapter3 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, liquids);
spinner3 = (Spinner) findViewById(R.id.spinner3);
spinner3.setAdapter(adapter3);
spinner3.setOnItemSelectedListener(this);
}
}
public void SetDrops()
{
ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, temperatures);
spinner2 = (Spinner) findViewById(R.id.spinner2);
spinner2.setAdapter(adapter2);
//spinner2.setOnItemSelectedListener(this);
ArrayAdapter<String> adapter3 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, temperatures);
spinner3 = (Spinner) findViewById(R.id.spinner3);
spinner3.setAdapter(adapter3);
//spinner3.setOnItemSelectedListener(this);
}
public void onClick(View v)
{
temp = Float.valueOf(myinput.getText().toString());
float capture;
if (flag==0)
{
celtofah(temp);
myoutput.setText(Float.toString(celtofah(temp)));
}
else if (flag==1)
{
celtokel(temp);
myoutput.setText(Float.toString(celtokel(temp)));
}
else if (flag==2)
{
fahtocel(temp);
myoutput.setText(Float.toString(fahtocel(temp)));
}
else if (flag==3)
{
myoutput.setText(Float.toString(fahtokel(temp)));
}
else if (flag==4)
{
keltocel(temp);
myoutput.setText(Float.toString(keltocel(temp)));
}
else if (flag==5)
{
capture = keltofah(temp);
myoutput.setText(Float.toString(keltofah(temp)));
}
}
public float fahtocel(float num)
{
float fahrenheit = num,celsius;
celsius = (fahrenheit-32)*5/9;
return celsius;
}
public float fahtokel(float num)
{
float fahrenheit = num,kelvin;
kelvin = (float) ((fahrenheit -32)*5/9 + 273.15);
return kelvin;
}
public float celtofah(float num)
{
float celsius = num,fahrenheit;
fahrenheit = (celsius * 9/5) + 32;
return fahrenheit;
}
public float celtokel(float num)
{
float celsius = num,kelvin;
kelvin = (float) (celsius + 273.15);
return kelvin;
}
public float keltofah(float num)
{
float kelvin = num,fahrenheit;
fahrenheit = (float) (((kelvin - 273.15) * 9/5) + 32);
return fahrenheit;
}
public float keltocel(float num)
{
float kelvin = num,celsius;
celsius = (float) (kelvin - 273.15);
return celsius;
}



