Android EditText字段无法正常运行

时间:2013-06-28 07:10:29

标签: android android-edittext

我在Android应用程序中有一个活动,它应该连接到一个servlet。我有两个EditText字段,并通过editText_name.getText()。toString方法获取两个输入。但是应用程序无法捕获输入和将它打印在Log.My代码片段中如下

    public class ServletActivity extends Activity {

Button button;
    TextView outputText;
//public String URL = "http://10.0.2.2:8080/MyHL7Server /getPatientDetails?patientID";
public String PatientDataURL = "http://192.168.161.129:8080/MyHL7Server/getPatientDetails?patientID";
public String SensorListURL="http://192.168.161.129:8080/MyHL7Server/getSensorDetails?CenterID";

public String PatientInfo=new String();
 public String SensorList=new String();

public String PatientIdInput=new String();
 public String CenterIdInput=new String();
 private ProgressDialog progressMessage;
 int patientDataFlag,sensorDataFlag=0;

 EditText PatientIdInputField;
 EditText CenterIdInputField;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_servlet);

     //final  Button ConnectServerButton=(Button)findViewById(R.id.button2);

        button = (Button) findViewById(R.id.button);
        outputText = (TextView) findViewById(R.id.textView3);
        PatientIdInputField=(EditText)findViewById(R.id.editText1);
        CenterIdInputField=(EditText)findViewById(R.id.editText2);
        PatientIdInput=PatientIdInputField.getText().toString();
        CenterIdInput=CenterIdInputField.getText().toString();
        Log.e("PatientIdInput is",PatientIdInput);
        Log.e("CenterIdInput is",CenterIdInput);
    System.out.println("Inside Servlet Activity");
    Log.e("Testing","Servlet Activity");




    ;
    button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

                Log.e("Patient Id Input",PatientIdInput);
                Log.e("CenterId Input",CenterIdInput);
                PatientDataURL.concat("=").concat(PatientIdInput);

                Log.e("Debug PatientDataURL created",PatientDataURL);
                Log.e("Debug","Calling GetPatientDataTask");

                GetPatientDataTask patientTask = new GetPatientDataTask();
                patientTask.execute(new String[] { PatientDataURL });
                Log.e("PatientData",PatientInfo);
                Toast.makeText(getApplicationContext(),
                        "Patient data is : "+PatientInfo, Toast.LENGTH_LONG).show();    
                System.out.println("Patient Data Obtained "+PatientInfo);




        }
    });
}

应用程序可以通过AsyncTask连接到servlet。但我关注的是userinput字段保持为null,即使我提供了一些输入。

有人可以对这个问题有所了解吗?我是否必须更改AndroidManifest.xml文件中的任何内容???

任何帮助将不胜感激。

5 个答案:

答案 0 :(得分:1)

您正在onCreate()中提取数据。

在按钮的onClick事件中移动这些行。

PatientIdInput=PatientIdInputField.getText().toString();
CenterIdInput=CenterIdInputField.getText().toString();

希望你了解其中的差异。

答案 1 :(得分:1)

移动你

PatientIdInput=PatientIdInputField.getText().toString();
    CenterIdInput=CenterIdInputField.getText().toString();

调用按钮的onClick侦听器。

答案 2 :(得分:0)

您正在尝试在onCreate中获取数据,但它会在启动时清空。您应该尝试从onClick上的EditText读取数据。 将此代码移动到您的点击处理程序中:

PatientIdInput=PatientIdInputField.getText().toString();
CenterIdInput=CenterIdInputField.getText().toString();
Log.e("PatientIdInput is",PatientIdInput);
Log.e("CenterIdInput is",CenterIdInput);

答案 3 :(得分:0)

    PatientIdInputField=(EditText)findViewById(R.id.editText1);
    CenterIdInputField=(EditText)findViewById(R.id.editText2);
    PatientIdInput=PatientIdInputField.getText().toString();
    CenterIdInput=CenterIdInputField.getText().toString();

将代码移到:

button.setOnClickListener(new View.OnClickListener()

答案 4 :(得分:0)

如果您在按钮上单击,则需要编辑文本数据。

而不是在按钮的点击监听器中放置从编辑文本中获取数据的代码。

因为你的代码已经执行但是,那时它没有值所以你没有得到任何东西。

所以,当您在代码的位置需要edit-text 的值时,您将编辑文本值放入代码

  button.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

            /* code executed when you click on button */

            PatientIdInput=PatientIdInputField.getText().toString();
            CenterIdInput=CenterIdInputField.getText().toString();

            Log.e("Patient Id Input",PatientIdInput);
            Log.e("CenterId Input",CenterIdInput);
            PatientDataURL.concat("=").concat(PatientIdInput);

            Log.e("Debug PatientDataURL created",PatientDataURL);
            Log.e("Debug","Calling GetPatientDataTask");

            GetPatientDataTask patientTask = new GetPatientDataTask();
            patientTask.execute(new String[] { PatientDataURL });
            Log.e("PatientData",PatientInfo);
            Toast.makeText(getApplicationContext(),
                    "Patient data is : "+PatientInfo, Toast.LENGTH_LONG).show();    
            System.out.println("Patient Data Obtained "+PatientInfo);
    }
});

onCreate() 删除 编辑文本值获取代码