我正在制作一个应用程序,我需要进行一个“注册”活动,其中有很少的EditTexts。现在,我面临的问题是我需要将EditText中的数据发送到某个网站。该网站也有相同的注册页面。
请以某种方式建议我如何将数据发送到该网站的特定栏目。
我附上了网站的图片 img1 是网站的形象和 img2 是我的应用程序的图像。
P.S。该网站是在PHP,我与拥有该网站的人没有任何关系。所以我不能指望他有任何帮助。
提前感谢!
答案 0 :(得分:0)
要从EditText读取值,请执行以下操作:
EditText edit = (EditText)findViewById(R.id.edittext);
String name = edit.getText().toString();
对表格
中的所有其他值执行此操作尝试使用此功能将数据发布到处理注册的服务器上的脚本。
public void postData(String name, String email, String password, String city,
String phone, String, address, String pin) {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.yoursite.com/registration.php");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("Name", name));
nameValuePairs.add(new BasicNameValuePair("Email", email));
nameValuePairs.add(new BasicNameValuePair("Password", password));
nameValuePairs.add(new BasicNameValuePair("City", city));
nameValuePairs.add(new BasicNameValuePair("Phone", phone));
nameValuePairs.add(new BasicNameValuePair("Address", address));
nameValuePairs.add(new BasicNameValuePair("Pin", pin));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
在进行实际发布之前,您应该检查此表单中发送的值,因为我假设这些值是进入数据库的,并且检查有效数据是一种好的做法。
同样在您的Android清单文件中,您应启用互联网使用。
<manifest xlmns:android...>
...
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
您应该考虑的另一点是,网络将无法随时在手机上使用。因此,您应该在进行上述调用之前检查网络状态。您应该设置另一个权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
现在您可以使用此功能轮询网络可用性:
public boolean checkNetwork() {
ConnectivityManager connectivityManager = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
return true;
}else{
return false;
}
}