Get user selection and convert it to String [Android]
I just got the Droid and after using it for a while I felt like I wanted to make a program for it. The program I am trying to make calculates the actual storage capacity of secondary media. The user selects from a list of units of measure, which ranges from KB to YB, and the size entered is entered into the formula depending on the selected block. However, there is a bit of a problem with the program. From my testing, I've narrowed it down to the point that the user's choice doesn't actually come from the counter. Everything I'm looking for seems to point me to a method very similar to how it works in J2SE, but it doesn't do anything. How should I get this data?
Here is the Java source code for the application:
package com.Actual.android;
import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import android.view.*;
public class ActualStorageActivity extends Activity
{
Spinner selection; /* declare variable, in order to control spinner (ComboBox) */
ArrayAdapter adapter; /* declare an array adapter object, in order for spinner to work */
EditText size; /* declare variable to control textfield */
EditText result; /* declare variable to control textfield */
Button calculate; /* declare variable to control button */
Storage capacity = new Storage(); /* import custom class for formulas */
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main); // load content from XML
selection = (Spinner)findViewById(R.id.spinner);
adapter = ArrayAdapter.createFromResource(this, R.array.choices_array, android.R.layout.simple_spinner_dropdown_item);
size = (EditText)findViewById(R.id.size);
result = (EditText)findViewById(R.id.result);
calculate = (Button)findViewById(R.id.submit);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); /* set resource for dropdown */
selection.setAdapter(adapter); // attach adapter to spinner
result.setEnabled(false); // make read-only
result.setText("usable storage");
}
public void calcAction(View view) {
String initial = size.getText().toString();
String unit = selection.getSelectedItem().toString();
String end = "Nothing";
double convert = Double.parseDouble(initial);
capacity.setStorage(convert);
if (unit == "KB")
{
end = Double.toString(capacity.getKB());
}
else if (unit == "MB")
{
end = Double.toString(capacity.getMB());
}
else if (unit == "GB")
{
end = Double.toString(capacity.getGB());
}
else if (unit == "TB")
{
end = Double.toString(capacity.getTB());
}
else if (unit == "PB")
{
end = Double.toString(capacity.getPB());
}
else if (unit == "EB")
{
end = Double.toString(capacity.getEB());
}
else if (unit == "ZB")
{
end = Double.toString(capacity.getZB());
}
else if (unit == "YB")
{
end = Double.toString(capacity.getYB());
}
else;
result.setText(end);
}
}
a source to share
I was going crazy trying to find the easiest way to get the selected value from the counter and convert it to a string. Here's the only way to do it.
final Spinner spinObj = (Spinner) findViewById(R.id.spin_genre);
TextView selection = (TextView)spinObj.getSelectedView();
CharSequence strGenre = selection.getText();
a source to share