Last active
May 13, 2018 20:20
-
-
Save Binary-Finery/fed425a2d680361cce80455cad56e041 to your computer and use it in GitHub Desktop.
minimal length converter
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.support.v7.app.AppCompatActivity; | |
import android.os.Bundle; | |
import android.text.Editable; | |
import android.text.TextWatcher; | |
import android.view.View; | |
import android.widget.AdapterView; | |
import android.widget.ArrayAdapter; | |
import android.widget.EditText; | |
import android.widget.Spinner; | |
import java.util.Locale; | |
public class Main extends AppCompatActivity implements AdapterView.OnItemSelectedListener, TextWatcher { | |
private EditText etTop, etBottom; | |
private Spinner spin1, spin2; | |
private final String UNITS[] = {"millimeters", "centimeters", "inches", "feet", "yards", "meters"}; | |
private final double[] VALUES = {1, 10, 25.4, 304.8, 914.3996342410972602, 1000}; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
initViews(); | |
initAdapters(); | |
} | |
@Override | |
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {doConversion();} | |
@Override | |
public void onNothingSelected(AdapterView<?> adapterView) {} | |
private void doConversion() { | |
if (!etTop.getText().toString().isEmpty()) etBottom.setText(String.format(Locale.getDefault(), "%.2f", (VALUES[spin1.getSelectedItemPosition()] * Double.parseDouble("0" + etTop.getText().toString())) / (VALUES[spin2.getSelectedItemPosition()]))); | |
else etBottom.setText(""); | |
} | |
@Override | |
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {doConversion();} | |
@Override | |
public void afterTextChanged(Editable editable) {} | |
@Override | |
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {} | |
private void initViews(){ | |
spin1 = findViewById(R.id.top_spinner); | |
spin2 = findViewById(R.id.bottom_spinner); | |
etTop = findViewById(R.id.et_top); | |
etBottom = findViewById(R.id.et_bottom); | |
etTop.addTextChangedListener(this); | |
} | |
private void initAdapters() { | |
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.spinner_layout, UNITS); | |
adapter.setDropDownViewResource(R.layout.spinner_drop); | |
ArrayAdapter<String> adapter2 = new ArrayAdapter<>(this, R.layout.spinner_layout, UNITS); | |
adapter2.setDropDownViewResource(R.layout.spinner_drop); | |
spin1.setAdapter(adapter); | |
spin2.setAdapter(adapter); | |
spin1.setOnItemSelectedListener(this); | |
spin2.setOnItemSelectedListener(this); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment