0

我正在制作一个应用程序,我需要在其中创建一个几乎没有 EditTexts 的“注册”活动。现在,我面临的问题是我需要将数据从 EditText 发送到某个网站。该网站也有相同的注册页面。

请建议我如何将数据发送到网站的特定列。

我附上了网站的图片 在此处输入图像描述 在此处输入图像描述 img1是网站的图片, img2是我的应用程序的图片。

PS 该网站是 php,我与拥有该网站的人没有任何关系。所以我不能指望他的任何帮助。

提前致谢!

4

1 回答 1

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;
    }
}
于 2013-07-06T17:23:49.210 回答