Ich entwickle eine Anwendung zum Konvertieren von Werten von kW nach km, ich möchte die Punktzahl in EditText2 sehen, wenn ich den Wert in EditText1 eingegeben habe, ohne eine Schaltfläche zu verwenden, um dies automatisch in der Ansicht zu tun, aber ich habe keine Ahnung Wie macht man das. Im Moment muss ich den richtigen Wert von Spinner auswählen, um das Ergebnis in EditText2 zu erhalten. Wie kann sich das ändern? Vielleicht bin ich auf der Suche nach einem Suchwert vom Spinner? Ich werde Sie auch fragen, wie Sie die Anwendung verbessern können. Vielen Dank.Wie wird das Ergebnis automatisch in EditText angezeigt?
Ich versuche TextWeatcher verwenden, aber es funktioniert immer noch nicht.
MainActivity.java
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
Spinner spinner1, spinner2;
EditText editText1, editText2;
double count = 1.36;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner1 = (Spinner) findViewById(R.id.spinner1);
spinner2 = (Spinner) findViewById(R.id.spinner2);
editText1 = (EditText) findViewById(R.id.editText1);
editText2 = (EditText) findViewById(R.id.editText2);
editText1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after){
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
String c = s.toString();
editText2.setText(c);
}
});
ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(this, R.array.przelicznik_arrayKM,
android.R.layout.simple_spinner_item);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter1);
spinner1.setOnItemSelectedListener(this);
ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this, R.array.przelicznik_arraykW,
android.R.layout.simple_spinner_item);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(adapter2);
spinner2.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Spinner spinner = (Spinner) parent;
String text = spinner1.getSelectedItem().toString();
String text2 = spinner2.getSelectedItem().toString();
if(text.equals("kW") & text2.equals("KM")) {
try {
double a = Double.parseDouble(editText1.getText().toString());
double suma = a/count;
editText2.setText(String.valueOf(suma));
}catch (NumberFormatException e){
Toast.makeText(this, "Enter yout value!", Toast.LENGTH_SHORT).show();
}
}
if(text.equals("KM") & text2.equals("kW")){
try {
double a = Double.parseDouble(editText1.getText().toString());
double suma = a /count;
editText2.setText(String.valueOf(suma));
}catch (NumberFormatException e){
Toast.makeText(this, "Enter your value!", Toast.LENGTH_SHORT).show();
}
} else {
String textString = editText1.getText().toString();
editText2.setText(String.valueOf(textString));
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {}
public void clearEditText(View view) {
editText1.setText("");
editText2.setText("");
}
}
strings.xml
<resources>
<string name="app_name">PrzelicznikMocySilnika</string>
<string-array name="przelicznik_arraykW">
<item>kW</item>
<item>KM</item>
</string-array>
<string-array name="przelicznik_arrayKM">
<item>KM</item>
<item>kW</item>
</string-array>
</resources>
Layout.xmln
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.hfad.przelicznikmocysilnika.MainActivity">
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="number"
android:hint="Enter your value"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_toLeftOf="@+id/spinner1"
android:layout_toStartOf="@+id/spinner1" />
<EditText
android:id="@+id/editText2"
android:hint="Enter your value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/editText1"
android:ems="10"
android:inputType="number"
android:layout_toLeftOf="@+id/spinner2"
android:layout_toStartOf="@+id/spinner2" />
<Spinner
android:id="@+id/spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_above="@+id/editText2" />
<Spinner
android:id="@+id/spinner2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_below="@+id/editText1" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText2"
android:layout_centerHorizontal="true"
android:layout_marginTop="25dp"
android:text="Reset"
android:textAllCaps="false"
android:onClick="clearEditText"/>
</RelativeLayout>
Sie können die 'EditText2' in' Runable' aktualisieren –