Показать детали с сервера на 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";
Другие вопросы по тегам