2012-03-12 59 views
0

如何將「嘗試」放在onclicklistener中,所以當我按下按鈕時它會發送數據?但是我這樣做,當我運行它時,它總是崩潰。按下按鈕時發送httpdata?

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    name = (EditText) findViewById(R.id.name); 
    pass = (EditText) findViewById(R.id.password); 

    b1 = (Button) findViewById(R.id.btn); 



     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost("http://www2.park.se/~ts5124/receive.php"); 
     try { 
      JSONObject json = new JSONObject(); 

      json.put("name","Tim"); 
      json.put("password", "hje"); 

      StringEntity se; 
      se = new StringEntity(json.toString()); 

      // Add your data 
      httppost.setEntity(se); 
      httppost.setHeader("Accept", "application/json"); 
      httppost.setHeader("Content-type", "application/json"); 


      Log.i(TAG, json.toString()); 

      // Execute HTTP Post Request 
      httpclient.execute(httppost); 

     } catch (JSONException je) { 


     } catch (IOException e) { 
      // TODO Auto-generated catch block 
     } 

} 

我已經完成了按鈕之前,它已經工作,爲什麼有一個問題,當它是一個「嘗試」的onClick?

+0

如果添加上你得到了什麼異常,並詳細信息的堆棧跟蹤這將有助於到什麼線路。 – 2012-03-12 07:47:24

+0

@Runkeball:請同時上傳日誌堆棧跟蹤。 – 2012-03-12 07:51:14

+0

我已將它貼在答案下。 – simtaxman 2012-03-13 09:21:46

回答

2

您需要在您的按鈕添加點擊監聽,然後把所有的http請求的東西它的onClick方法中:

b1.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 

    } 
}); 
+0

是的,但當我做應用程序崩潰。我從捕獲後的HttpClient聲明到最後一個}。但在我看到按鈕之前,它仍然崩潰。 – simtaxman 2012-03-12 08:12:50

+0

什麼logcat /崩潰日誌? – waqaslam 2012-03-12 08:14:10

+0

http://pastebin.com/y1TShnuJ這裏是日誌。 – simtaxman 2012-03-12 09:13:29