我建立了一个医疗计算器应用程序,里面有很多文本,每个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;
        }
    }
}


如果有帮助,别忘了感谢和接受。

09-12 21:57