2012-04-09 20 views
0

Androidの電話アプリからPHPスクリプトにデータを投稿しようとしています。これは私が使用しているコードです。AndroidアプリからデータをPHPスクリプトに送信

public class Upload extends Activity implements OnClickListener { 
EditText joke; 
Button upload; 
AlertDialog alertDialog = new AlertDialog.Builder(this).create(); 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.upload); 
} 
public void onClick(View v) { 
    // TODO Auto-generated method stub 
    switch (v.getId()) { 
    case R.id.bUpload: 
     uploadJoke(); 
     break; 
    } 

} 
private void uploadJoke() { 
    // Create a new HttpClient and Post Header 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("http://xxxx/telejoke.php"); 

    try { 
     // Add your data 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
     nameValuePairs.add(new BasicNameValuePair("username", "test")); 
     nameValuePairs.add(new BasicNameValuePair("joke", joke.getText().toString())); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

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

    } catch (ClientProtocolException e) { 
     alertDialog.setTitle("Client Protocol Exception"); 
    } catch (IOException e) { 
     alertDialog.setTitle("IOException"); 
    } 
} 

}

私は私のアンドロイド携帯電話上でそれを実行しようとすると、しかし、それだけで予期しないエラーでクラッシュします。これで助けていただければ幸いです。

+0

こんにちはmoesef、plzはあなたのエラーログを投稿しますので、私は変更を提案することができます –

+0

あなたはメインスレッドでネットワーク操作を実行しています、新しいスレッドまたはAsyncTaskでネットワーク操作を移動することをお勧めします –

+0

エラーには何かがありますAlertDialogと関連付けるAlertDialogをuploadJokeメソッドの中に移動すると、エラーが発生しますが、データがPHPスクリプトにポストされているとは思えません。 – moesef

答えて

0

UploadJoke内のAlertDialog alertDialog = new AlertDialog.Builder(this).create();がこの問題を解決します。

関連する問題