値をkWからkmに変換するアプリケーションを開発していますが、EditText1でこの値を入力したときにEditText1の値を表示したいと思っています。これを行う方法。今は、EditText2で結果を得るためにSpinnerから正しい値を選択する必要があります。これはどうやって変わるのですか?たぶん間違った方法で私はスピナーからの検索価値を探していますか?また、アプリケーションの改善方法についてもお聞きします。ありがとうございました。結果をEditTextに自動的に表示する方法は?
私はTextWeatcherを試してみましたが、まだ動作していません。
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>
「実行可能」の 'EditText2'を更新できます。 –