Android EditText字段不起作用
我在一个android应用程序中有一个活动,它应该连接到一个servlet。我有两个EditText字段,并通过EditText_name.getText().toString方法获取两个输入。但是该应用程序无法捕获输入并将其打印到日志中。我的代码片段如下所示Android EditText字段不起作用,android,android-edittext,Android,Android Edittext,我在一个android应用程序中有一个活动,它应该连接到一个servlet。我有两个EditText字段,并通过EditText_name.getText().toString方法获取两个输入。但是该应用程序无法捕获输入并将其打印到日志中。我的代码片段如下所示 public class ServletActivity extends Activity { Button button; TextView outputText; //public String URL = "htt
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字段仍然保持为空
有人能解释一下这个问题吗?我是否必须更改AndroidManifest.xml文件中的任何内容
任何帮助都将不胜感激。您正在
onCreate()
中获取数据
在按钮的onClick事件中移动这些行
PatientIdInput=PatientIdInputField.getText().toString();
CenterIdInput=CenterIdInputField.getText().toString();
希望您能理解其中的区别。您试图在onCreate中获取数据,但在启动时它将为空。您应该在单击时尝试从EditText读取数据。 将此代码移到单击处理程序中:
PatientIdInput=PatientIdInputField.getText().toString();
CenterIdInput=CenterIdInputField.getText().toString();
Log.e("PatientIdInput is",PatientIdInput);
Log.e("CenterIdInput is",CenterIdInput);
感动你
PatientIdInput=PatientIdInputField.getText().toString();
CenterIdInput=CenterIdInputField.getText().toString();
调用按钮的onClick侦听器
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()
如果单击按钮时需要编辑文本数据 然后将用于从编辑文本中获取数据的代码放入按钮的单击侦听器中 因为你的代码是被执行的,但在那个时候它没有任何价值,所以你什么也得不到 所以,当您需要在代码的那个位置编辑文本的值时,您可以将编辑文本的值放入代码中
和删除编辑文本值从onCreate()获取代码 你确定edittext
editText1
存在于布局activity\u servlet
中吗?谢谢你的回答…我被困在了这个相当愚蠢的点上。谢谢你的回答…我被困在了这个相当愚蠢的点上。
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);
}
});