我正在製作一個非常簡單的Android應用程序,但是當我嘗試將它連接到網頁時,它不起作用。我已經在互聯網上嘗試了很多教程,我也已經閱讀了很多主題,但沒有取得任何成功。 所以,現在我將向您解釋我的代碼,希望我們能夠一起找到解決方案。現在謝謝你。Android和MySQL/PHP數據庫連接問題
這是主要的Java頁面,在這裏我就OnClick方法連接:
package com.example.enchan.crazyup;
import android.database.Cursor;
import android.os.PersistableBundle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;
import android.widget.Button;
import android.view.View;
import android.content.Intent;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.List;
import android.util.Log;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import android.view.Menu;
import android.app.Activity;
import android.widget.Toast;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class FollowUsActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_follow_us);
findViewById(R.id.subscribe).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
EditText email = (EditText) findViewById(R.id.email);
String pkg = getPackageName();
URL url_page = null;
try {
url_page = new URL("http://crazyup.altervista.org/select_email.php?email==" + email.getText().toString());
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection client = (HttpURLConnection) url_page.openConnection();
} catch (IOException e) {
e.printStackTrace();
} Intent OpenNewEmailActivity = new Intent(FollowUsActivity.this, NewEmailActivity.class);
Intent intent = OpenNewEmailActivity.putExtra(pkg + "Test", email.getText().toString());
startActivity(OpenNewEmailActivity);
}
});
}
}
這是corrispondent .XML主文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/bg_follow_us"
tools:context="com.example.enchan.crazyup.FollowUsActivity">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/subscribe"
android:src="@drawable/iscriviti"
android:layout_marginBottom="41dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:ems="10"
android:id="@+id/email"
android:layout_above="@+id/subscribe"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Indirizzo Email"
android:id="@+id/email_title"
android:layout_above="@+id/email"
android:layout_centerHorizontal="true" />
</RelativeLayout>
在清單中有這些權限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
這個php頁面是這樣的(如果我在瀏覽器中打開它,它會起作用):
<?php
mysql_connect("localhost","crazyup","");
mysql_select_db("my_crazyup");
$s_email = $_GET['email'];
$string = "INSERT INTO email (content) VALUES ('".$s_email."')";
$q = mysql_query($string);
if (!$q) {
die("Errore nella query: " . mysql_error());
}
/* $q = mysql_query("SELECT * FROM email WHERE email =".$s_email);
while($e = mysql_fetch_assoc($q))
$output[] = $e;
print(json_encode($output)); */
mysql_close();
?>
我已閱讀,一個可能的問題可能是Android版本(棉花糖或棒棒糖),但我都試過,我有同樣的事情。 在logcat中沒有錯誤,所以我不明白爲什麼該應用程序無法正常工作。
我從您的Java代碼中看到您沒有使用客戶端對象:是 一個原因?另外,指定「不起作用」:是否阻止某處? – ddb
我不使用客戶端對象,因爲我找到的其他解決方案不起作用。當我說應用程序不起作用時,我的意思是沒有任何事情發生。沒有錯誤,但也有任何反應。我如何更改我的代碼以嘗試工作?謝謝。 PS。對不起我的英語不好,我是意大利人。 –
是NewEmailActivity您創建的活動嗎?你的目標是讓用戶發送一封電子郵件,如果他點擊按鈕? – ddb