-2
基本上,我有一個由碎片組成的導航欄活動,並且我正在製作單位轉換器。我已經清楚瞭如何做到的概念,只是有一個簡單的問題。由於我使用的單選按鈕,每次我改變值時轉換爲同一單位換算,我需要點擊不同的單選按鈕,然後單擊回到同一單選我想不斷更新應用程序中的信息
final RadioGroup radioGroup = (RadioGroup) myView.findViewById(R.id.radio);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, final int checkedId) {
// checkedId is the RadioButton selected
switch (checkedId) {
case R.id.radioGram:
final TextView textView = (TextView) myView.findViewById(R.id.EditTextFrom);
textView.setText("Gram");
final RadioGroup radioGroup = (RadioGroup) myView.findViewById(R.id.radio2);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId2) {
switch (checkedId2) {
case R.id.radioGram2:
TextView textView = (TextView) myView.findViewById(R.id.EditTextTo);
textView.setText("Gram");
EditText calc = (EditText) myView.findViewById(R.id.From);
String gramholder = calc.getText().toString();
gram = Integer.parseInt(gramholder) * 1;
EditText editText = (EditText) myView.findViewById(R.id.To);
editText.setText(String.valueOf(gram));
break;
case R.id.radioKilogram2:
TextView textView2 = (TextView) myView.findViewById(R.id.EditTextTo);
textView2.setText("Kilogram");
EditText calc2 = (EditText) myView.findViewById(R.id.From);
String gramholder2 = calc2.getText().toString();
gram2 = Integer.parseInt(gramholder2) * 0.001;
EditText editText2 = (EditText) myView.findViewById(R.id.To);
editText2.setText(String.valueOf(gram2));
break;
}
}
});
因此,舉例來說,如果我想將500克轉換爲公斤,我只需點擊第一個radiogroup中的radiobuttons gram和第二個radiogroup中的kg(公斤),但如果我想將520克轉換爲公斤,我需要點擊克,然後在第二個radiogroup中回到千克
我沒有使用TextChangeListener和TextWatcher,並補充,它檢查的單選按鈕進入onTextChanged的一部分,但我有同樣的問題,別的我可以嘗試@Kartik夏爾馬 – Taha
@Taha我加入了一些代碼,這可以幫助您理解解決方案的模式。 –
謝謝,我會看看如果我可以用你提供的樣本來處理一些事情@Kartik Sharma – Taha