Java Edittext内容显示为零
我正在制作一个应用程序,需要从用户那里获取输入,并将该输入附加到字符串中,并将其用作数据解析的url 但编辑文本内容为空,即使我在编辑文本中输入文本 我将edittext内容转换为字符串,如下所示Java Edittext内容显示为零,java,android,Java,Android,我正在制作一个应用程序,需要从用户那里获取输入,并将该输入附加到字符串中,并将其用作数据解析的url 但编辑文本内容为空,即使我在编辑文本中输入文本 我将edittext内容转换为字符串,如下所示 EditText edit = (EditText)findViewById(R.Id.tv5); 在你的内心深处 String data = edit.getText().toString(); 谁能告诉我为什么data.length()给了我零? 我完整的主要活动如下: public clas
EditText edit = (EditText)findViewById(R.Id.tv5);
在你的内心深处
String data = edit.getText().toString();
谁能告诉我为什么data.length()
给了我零?
我完整的主要活动如下:
public class Pnr extends Activity {
EditText edit;
TextView text1;
Button button;
String pnr, check;
HttpClient client;
JSONObject json;
int s;
String URL = "pnrbuddy.com/pnrstatus=";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pnr);
edit = (EditText) findViewById(R.id.tv5);
text1 = (TextView) findViewById(R.id.textView2);
button = (Button) findViewById(R.id.button1);
client = new DefaultHttpClient();
pnr = String.valueOf(edit.getText());
s = pnr.length();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new Read().execute("trainNo");
}
});
}
public JSONObject pnrStatus(String key) throws ClientProtocolException,
IOException, JSONException {
StringBuilder url = new StringBuilder(URL);
url.append(key);
HttpGet get = new HttpGet(url.toString());
HttpResponse r = client.execute(get);
int status = r.getStatusLine().getStatusCode();
JSONObject last = new JSONObject();
if (status == 200) {
HttpEntity e = r.getEntity();
String data = EntityUtils.toString(e);
last = new JSONObject(data);
return last;
} else {
return last;
}
}
public class Read extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... arg0) {
// TODO Auto-generated method stub
try {
json = pnrStatus(pnr);
return json.getString(arg0[0]);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return s + "";
}
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
text1.setText(" " + result);
}
}
公共类Pnr扩展活动{
编辑文本编辑;
TextView text1;
按钮;
字符串pnr,检查;
HttpClient;
JSONObject json;
int-s;
字符串URL=“pnrbuddy.com/pnrstatus=”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pnr);
edit=(EditText)findViewById(R.id.tv5);
text1=(TextView)findViewById(R.id.textView2);
按钮=(按钮)findViewById(R.id.button1);
client=新的DefaultHttpClient();
pnr=String.valueOf(edit.getText());
s=pnr.length();
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
新读取()。执行(“列车号”);
}
});
}
公共JSONObject pnrStatus(字符串键)抛出ClientProtocolException,
IOException,jsoneexception{
StringBuilder url=新的StringBuilder(url);
url.append(key);
HttpGet=newhttpget(url.toString());
HttpResponse r=client.execute(get);
int status=r.getStatusLine().getStatusCode();
JSONObject last=新的JSONObject();
如果(状态==200){
HttpEntity e=r.getEntity();
字符串数据=EntityUtils.toString(e);
last=新的JSONObject(数据);
最后返回;
}否则{
最后返回;
}
}
公共类读取扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…arg0){
//TODO自动生成的方法存根
试一试{
json=pnrStatus(pnr);
返回json.getString(arg0[0]);
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
返回null;
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
返回null;
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
返回s+“”;
}
}
@凌驾
受保护的void onPostExecute(字符串结果){
//TODO自动生成的方法存根
text1.setText(“+结果);
}
}
}
当我在字符串URL中输入字符串而不是从edittext接受现有字符串时,代码会起作用
URL=“pnrbuddy/pnrstatus=myText”;
为什么我无法从editText中获取字符串?试试这个
EditText edit = (EditText)findViewById(R.id.tv5);
String data = edit.getText().toString();
如果您试图在
EditText
中的onclicklistener
中获取长度,它将仅给出u0
。在这种情况下,请尝试从onTextChange
获取长度
Replace your on create method by this n try
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pnr);
edit = (EditText) findViewById(R.id.tv5);
text1 = (TextView) findViewById(R.id.textView2);
button = (Button) findViewById(R.id.button1);
client = new DefaultHttpClient();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
pnr =edit.getText().toString();
s = pnr.length();
new Read().execute("trainNo");
}
});
}
实际上,在创建活动时而不是单击按钮时获取文本,因此将gettext代码放在onclick方法中可以解决您的问题您确定使用了正确的id-tv5吗?忘记我的评论吧。。这仅在TextView中可用class@user3363800显示您的按钮单击侦听器代码发布您的完整活动类代码。您可以向我们显示更多代码和布局xml文件吗?