다음은 localhost 서버의 MySQl 데이터베이스에 데이터를 전송하기위한 Java 코드입니다. 사용 된 스크립트 언어 은 PHP입니다. PHP 코드가 제대로 작동하고 브라우저를 통해 을 사용하면 값이 삽입됩니다. 의사 소통에 오류가 있다고 느낍니다. 하지만 난 디버그 수 없습니다. 도와주세요.데이터베이스에 값을 전달할 수 없습니다.
package com.example.databasetest1;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
Button Enter;
EditText tName;
String sName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Enter = (Button) findViewById(R.id.bEnter);
tName =(EditText)findViewById(R.id.etName);
sName=tName.getText().toString();
Enter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
HttpClient httpClient = new DefaultHttpClient();
List<NameValuePair> nameValuePair=new ArrayList<NameValuePair>(1);
nameValuePair.add(new BasicNameValuePair("Name",sName));
HttpPost httpPost = new HttpPost("http://192.168.173.1/try_database/name_insert.php");
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
httpClient.execute(httpPost);
} catch (ClientProtocolException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
}
});
}
/*public void insert() throws ClientProtocolException, IOException
{
HttpClient httpClient = new DefaultHttpClient();
List<NameValuePair> nameValuePair=new ArrayList<NameValuePair>(1);
nameValuePair.add(new BasicNameValuePair("Name",sName));
HttpPost httpPost = new HttpPost("http://192.168.173.1/try_database/name_insert.php");
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
httpClient.execute(httpPost);
}*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
사용 AsyncTask를 :
http://www.vogella.com/articles/AndroidBackgroundProcessing/article.html
http://examples.javacodegeeks.com/android/core/os/asynctask/android-asynctask-example/
체크 아웃이 :
또한 한 번 봐 걸릴 수 있습니다. –
'의사 소통에 오류가 있다고 느낍니다. ' 오류가 발생하면 오류 메시지를 게시하십시오. –
코드를 비동기로 이동하고 발생한 오류를 알려주십시오. 감사 – nik