以下是我的文本字段,单选按钮等:
et1 = Edit Text Field
radioButton1 = Radio Button (part of group1)
radioButton2 = Radio Button (part of group1)
textView2 = Text View
我想要的是不断更新textView2,具体取决于et1中的内容和选择的单选按钮。
我在想这个问题可能就是使用convertUp / convertDown方法。它仅在实际单击单选按钮时运行,而不是选中。
如果这是问题,有人可以告诉我该怎么做。如果不是,有人可以向我解释我哪里出错了。我会很感激。提前谢谢。
这是我使用的代码:
("标记"是将在textView2中更新的变量和"值"是"标记"依赖的变量 - 如方法中所示)
public class MainActivity extends ActionBarActivity {
double mark = 0;
double value = 10;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText text = (EditText)findViewById(R.id.et1);
try{
value = Double.parseDouble(text.getText().toString());
} catch (final NumberFormatException e) {
value = 1.0;
}
OnClickListener listener1 = new OnClickListener(){
public void onClick(View v) {
mark = convertUp(value);
}
};
OnClickListener listener2 = new OnClickListener(){
public void onClick(View v) {
mark = convertDown(value);
}
};
RadioButton rb1 = (RadioButton) findViewById(R.id.radioButton1);
rb1.setOnClickListener(listener1);
RadioButton rb2 = (RadioButton) findViewById(R.id.radioButton2);
rb2.setOnClickListener(listener2);
TextView tv1 = (TextView)findViewById(R.id.textView2);
tv1.setText(""+mark);
}
答案 0 :(得分:1)
或尝试tv1.setText("" + mark);在OnClickListener listener1和OnClickListener listener2
中答案 1 :(得分:1)
您需要做几件事才能不断更新。
首先,TextWatcher
需要EditText
,每次输入新信时都会修改textView
。
et1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
try{
value = Double.parseDouble(text.getText().toString());
} catch (final NumberFormatException e) {
value = 1.0;
}
if(rb1.isChecked()){ mark = convertUp(value); }
else{ mark = convertDown(value); }
tv1.setText(""+mark); //will update ur tV every time you input a lleter
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
@Override
public void afterTextChanged(Editable s) { }
});
如果您更改textView
radioButton
OnClickListener listener1 = new OnClickListener(){
public void onClick(View v) {
try{
value = Double.parseDouble(text.getText().toString());
} catch (final NumberFormatException e) {
value = 1.0;
}
mark = convertUp(value);
tv1.setText(""+mark);
}
};
OnClickListener listener2 = new OnClickListener(){
public void onClick(View v) {
try{
value = Double.parseDouble(text.getText().toString());
} catch (final NumberFormatException e) {
value = 1.0;
}
mark = convertDown(value);
tv1.setText(""+mark);
}
};
希望它有所帮助!祝你好运!