2014-02-28 35 views
0

我在做一個應用程序,我需要從用戶採取投入和追加該輸入以字符串,並以此作爲數據解析 但編輯文本內容爲空,即使一個網址我我在的EditText 輸入文本我轉換的EditText內容串如下EDITTEXT內容顯示爲零

EditText edit = (EditText)findViewById(R.Id.tv5); 

而且裏面onclicklistener

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); 

    } 

} 

} 當我輸入的字符串,而不是從EditText上接受的字符串URL與exsisting串代碼工作 URL =「pnrbuddy/pnrstatus =會將myText」一起的; 爲什麼讀音字無法從EDITTEXT得到字符串?

+1

你確定你使用的是正確的ID活動創建不? –

+0

忘了我的意見..這只是在TextView的類 – donfuxx

+0

什麼呢'提供的System.out.println(「您輸入:」 +數據);'打印logcat的? –

回答

0

嘗試用這種

EditText edit = (EditText)findViewById(R.id.tv5); 
String data = edit.getText().toString(); 
+0

我試過這個,但它顯示零 – user3363800

0

如果你試圖讓長在EditTextonclicklistener它會給ü0 only.In這種情況下,嘗試從onTextChange得到。 TV5 -

0
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"); 

      } 
     }); 
    } 

其實你得到的文本當點擊按鈕時,所以在放置的onclick方法gettext的代碼將解決您的問題