我正在为我在学校的最终项目制作一个Android应用程序。 我只知道基本的Java,我需要让我的应用程序连接到我的mysql数据库。
所以我在这里使用了get方法:
https://www.tutorialspoint.com/android/android_php_mysql.htm
除了php部分以及它如何连接和执行代码,我不明白这一行
StringBuffer sb = new StringBuffer("");
String line="";
while ((line = in.readLine()) != null) {
sb.append(line);
break;
}
in.close();
return sb.toString();
我试着读这个:
https://developer.android.com/reference/java/lang/StringBuffer.html
但我吮吸英语并阅读,这不会让我明白StringBuffer做了些什么。我只知道它会返回一些内容并将其转换为字符串类型,因此我认为这是php结果。
我想知道的是StringBuffer在上面的教程中做了什么?就像他们返回php结果的值一样吗?
如果他们这样做我可以像这样使用它吗?因为我试图这样做,但得到一个捕获(异常e),e.getMessage为null
TextView text2 = (TextView) findViewById(R.id.textView);
text2.setText(sb.toString());
如果他们不这样做,我如何将php值的结果设置为我的textview?
答案 0 :(得分:0)
StringBuffer是一种逐段构建String的方法。它是手动连接字符串的替代方法,如下所示:
String string3 = string0 + string1 + string2;
你会这样做。
stringBuffer.append(string0)
.append(string1)
.append(string2);
因此,它所做的只是逐行 中的字符串并将其组合成一个字符串。
答案 1 :(得分:0)
好伙伴,这取决于你期望你可以连接到数据库的结果,例如发送或获取一些数据,然后你还需要一个php文件。 但是连接到db的最简单方法是使用Volley或AsyncTask。 分析这些示例代码,它完全正常工作(但您需要一个与您的请求相关联的php文件:
private class YourTask extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... voids) {
String strUrl = "http://YOUR_PLACE_ON_A_SERVER_WHERE_THE_PHP_FILE_IS.php";
URL url = null;
StringBuffer sb = new StringBuffer();
try {
url = new URL(strUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.connect();
InputStream iStream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(iStream));
String line = "";
while ((line = reader.readLine()) != null) {
sb.append(line);
}
reader.close();
iStream.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
//Here you can manage things you want to execute
}