我建立了一个医疗计算器应用程序,里面有很多文本,每个TextView
都表示特定的值,例如
ptn =患者姓名
wt =重量
命中=高
...等等
并且可能是用户忘记了他在写作时必须在文本中写的内容,因此,我建议一种记住他的方法,该方法是在屏幕底部放置多余的TextView
,这样当用户不书写时文本为空..然后,当他单击“ ptn”时,下面的文本显示为“患者姓名”,然后当他离开文本并单击下一个文本“ wt”时,下面的文本将擦除“患者名称”,并将其替换为“ weight” “ ..等
并为此代码建议:
e1 = (EditText) findViewById(R.id.Name);
StringV = (TextView) findViewById(R.id.StringV);
////
e1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
StringV.setText("");
}
});
e1.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
StringV.setText("");
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
StringV.setText("Patient Name");
}
});
但是运行该应用程序时,结果令人沮丧!
当我单击下一个文本时,下面的内容并没有改变,而只是在我写文本时才更改。我想在单击下一个文本时更改它,直到完成写作并单击下一个文本。
请怎么做?
最佳答案
我认为您的工作可以很简单地完成:
public class YourClass extends Activity implements OnClickListener{
EditText name , weight;
TextView StringV;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
name = (EditText) findViewById(R.id.Name);
weight = (EditText) findViewById(R.id.Weight);
StringV = (TextView) findViewById(R.id.StringV);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.Name:
StringV.setText("Patient Name");
break;
case R.id.Weight:
StringV.setText("Weight");
break;
// write as many cases as you want
default:
StringV.setText(" ");
break;
}
}
}
如果有帮助,别忘了感谢和接受。