Показать детали с сервера на Android
Приведенный ниже код отображает содержимое с моего сервера на панель инструментов Android или на панель действий, но я хочу преобразовать код для отображения на теле Activity
как полное имя пользователя, имя пользователя электронной почты и т. д. Строка URL = Config.Base_Url+"get/gtuspo.php";
для отображения точек с сервера других я могу манипулировать
txtName = (TextView) findViewById(R.id.name);
txtEmail = (TextView) findViewById(R.id.email);
txtUser = (TextView) findViewById(R.id.user);
// Showing Points on ToolBar Menu
@Override
public boolean onPrepareOptionsMenu(final Menu menu) {
// executing retreival task here
String URL = Config.Base_Url+"get/gtuspo.php";
StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
//System.out.println(response);
Toast.makeText(MainActivity.this,response,Toast.LENGTH_SHORT).show();
menu.findItem(R.id.points).setTitle("Points :" + response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_SHORT).show();
}
}){
@Override
protected Map<String,String> getParams(){
Map<String,String> params = new HashMap<String, String>();
params.put("username",App.getInstance().getUsername());
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
return super.onPrepareOptionsMenu(menu);
}
String URL = Config.Base_Url+"get/gtuspo.php";
PHP
<?php
include '../connect_database.php';
if($_SERVER['REQUEST_METHOD']=='POST') {
$username = $_POST['username'];
$sql = "SELECT points FROM users WHERE login = '$username'";
$result = $connect->query($sql);
$row = $result->fetch_assoc();
echo $row["points"];
} else {
echo '404 - Not Found <br/>';
echo 'the Requested URL is not found on this server ';
}
?>
И отображать имена на Actionbar
,
String `URL = Config.Base_Url+"get/name.php";
PHP
<?php
include '../connect_database.php';
if($_SERVER['REQUEST_METHOD']=='POST') {
$username = $_POST['username'];
$sql = "SELECT fullname FROM users WHERE login = '$username'";
$result = $connect->query($sql);
$row = $result->fetch_assoc();
echo $row["fullname"];
} else {
echo '404 - Not Found <br/>';
echo 'the Requested URL is not found on this server ';
}
?>
Это структура базы данных
CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`gcm_regid` text COLLATE utf8_unicode_ci,
`state` int(10) unsigned DEFAULT '0',
`fullname` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`salt` char(3) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`passw` varchar(32) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`login` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`email` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`regtime` int(10) unsigned DEFAULT '0',
`ip_addr` char(32) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`points` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `login` (`login`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
1 ответ
Сохраните это как user_info.php
<?php
include '../connect_database.php';
if($_SERVER['REQUEST_METHOD']=='POST') {
$username = $_POST['username'];
$sql = "SELECT * FROM users WHERE login = '$username'";
$result = $connect->query($sql);
$row = $result->fetch_assoc();
echo json_encode($row);
} else {
echo '404 - Not Found <br/>';
echo 'the Requested URL is not found on this server ';
}
?>
Теперь в вашем коде Android, в вашем onReponse
сделайте следующее:
Примечание: Volley предоставляет способ получить ответ json, но ради того, чтобы не изменять ваш код, мы сделаем это следующим образом.
@Override
public void onResponse(String response) {
try {
JSONObject jsonResponse= new JSONObject(response);
txtName.setText(jsonResponse.getString("fullname"));
txtEmail.setText(jsonResponse.getString("email"));
txtPoints.setText(jsonResponse.getString("points"));// you need to create this textView txtPoints.
} catch (Throwable t) {
Log.e("onResponse", "The response: " + response + " seems to not be json formatted.");
}
}
Не забывайте:
String URL = Config.Base_Url + "get/user_info.php";