我有一个用户登录活动(MainActivity),另一个有服务订单列表(ListarActivity)。
我只需要使用已登录用户ID的工作顺序完成此列表。 列表使用文件listar.php中的JSON完成,使用MYSQL作为Bank登录文件login_user.php。
MainActivity
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.koushikdutta.async.future.FutureCallback;
import com.koushikdutta.ion.Ion;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ShowChat();
Button BtnLogar = (Button) findViewById(R.id.BtnLogar);
BtnLogar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText txtLoginEmail = (EditText) findViewById(R.id.txtLoginEmail);
EditText txtLoginSenha = (EditText) findViewById(R.id.txtLoginSenha);
int error = 0;
if (txtLoginEmail.getText().toString().equals("")) {
txtLoginEmail.setError("Preencha o campo PREFIXO.");
txtLoginEmail.requestFocus();
error = 1;
} else if (txtLoginSenha.getText().toString().equals("")) {
txtLoginSenha.setError("Preencha o campo VIATURA.");
txtLoginSenha.requestFocus();
error = 1;
}
if (error == 0) {
String URL = "http://192.168.1.104/login_user.php";
SharedPreferences preferences = getBaseContext().getSharedPreferences("USER_INFORMATION", Context.MODE_PRIVATE);
String token_user = preferences.getString("token_usuario", "");
Ion.with(getBaseContext())
.load(URL)
.setBodyParameter("email_user", txtLoginEmail.getText().toString())
.setBodyParameter("senha_user", txtLoginSenha.getText().toString())
.setBodyParameter("token_user", token_user)
.asJsonObject()
.setCallback(new FutureCallback<JsonObject>() {
@Override
public void onCompleted(Exception e, JsonObject result) {
if (result.get("retorno").getAsInt() > 0) {
SharedPreferences.Editor preferences = getSharedPreferences("USER_INFORMATION", MODE_PRIVATE).edit();
preferences.putInt("id_usuario", result.get("retorno").getAsInt());
preferences.putString("nome_usuario", result.get("nome_usuario").getAsString());
preferences.putString("email_usuario", result.get("email_usuario").getAsString());
preferences.putString("photo_usuario", result.get("photo_usuario").getAsString());
preferences.commit();
// Abrir a Tela Principal
ShowChat();
} else {
Toast.makeText(getBaseContext(), "Erro", Toast.LENGTH_LONG).show();
}
}
});
}
}
});
}
private void ShowChat() {
SharedPreferences preferences = getSharedPreferences("USER_INFORMATION", MODE_PRIVATE);
if (preferences.getInt("id_usuario", 0) > 0) {
Intent it = new Intent(MainActivity.this, ListarActivity.class);
startActivity(it);
finish();
}
}
}
ListarActivity
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.koushikdutta.async.future.FutureCallback;
import com.koushikdutta.ion.Ion;
public class ListarActivity extends AppCompatActivity {
private ArrayAdapter<JsonObject> clientesAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listar);
}
@Override
protected void onResume(){
super.onResume();
clientesAd = new ArrayAdapter<JsonObject>(this, 0){
@Override
public View getView(int position, View view, ViewGroup viewGroup){
if (view == null){
view = getLayoutInflater().inflate(R.layout.listview_clientes, null);
}
JsonObject obj = getItem(position);
TextView txvID = (TextView) view.findViewById(R.id.txvID);
txvID.setText(obj.get("id_servico").getAsString());
TextView txvNome = (TextView) view.findViewById(R.id.txvNome);
txvNome.setText(obj.get("nome").getAsString());
TextView txvUc = (TextView) view.findViewById(R.id.txvUc);
txvUc.setText(obj.get("uc").getAsString());
TextView txvOs = (TextView) view.findViewById(R.id.txvOs);
txvOs.setText(obj.get("numero_os").getAsString());
TextView txvData = (TextView) view.findViewById(R.id.txvData);
txvData.setText(obj.get("data_hora_entrega").getAsString());
TextView txvEnd = (TextView) view.findViewById(R.id.txvEnd);
txvEnd.setText(obj.get("endereco").getAsString());
TextView txvBairro = (TextView) view.findViewById(R.id.txvBairro);
txvBairro.setText(obj.get("bairro").getAsString());
TextView txvComplemento = (TextView) view.findViewById(R.id.txvComplemento);
txvComplemento.setText(obj.get("complemento").getAsString());
TextView txvTipo = (TextView) view.findViewById(R.id.txvTipo);
txvTipo.setText(obj.get("tipo").getAsString());
TextView txvMedidor = (TextView) view.findViewById(R.id.txvMedidor);
txvMedidor.setText(obj.get("medidor").getAsString());
TextView txvObs = (TextView) view.findViewById(R.id.txvObs);
txvObs.setText(obj.get("obs").getAsString());
return view;
}
};
Ion.with(getBaseContext()).load("http://192.168.1.104/listar.php")
.asJsonArray().setCallback(new FutureCallback<JsonArray>() {
@Override
public void onCompleted(Exception e, JsonArray result) {
for(int i = 0; i < result.size(); i++){
JsonObject jsonObject = result.get(i).getAsJsonObject();
clientesAd.add(jsonObject);
}
ListView ltwClientes = (ListView)findViewById(R.id.ltwClientes);
ltwClientes.setAdapter(clientesAd);
ltwClientes.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
JsonObject obj = (JsonObject) parent.getItemAtPosition(position);
String id_servico = obj.get("id_servico").getAsString();
String nome = obj.get("nome").getAsString();
String uc = obj.get("uc").getAsString();
Intent intent = new Intent(getBaseContext(), EditarActivity.class);
intent.putExtra("id_servico", id_servico);
intent.putExtra("nome", nome);
intent.putExtra("uc", uc);
startActivity(intent);
}
});
//JsonObject retorno = result.get(1).getAsJsonObject();
//Toast.makeText(getBaseContext(), retorno.get("nome").toString(), Toast.LENGTH_LONG).show();
}
});
}
}
login_user.php
<?php
include "db.php";
if (!isset($_POST["email_user"])){
exit;
}
$email_user = $_POST["email_user"];
$senha_user = $_POST["senha_user"];
$token_user = $_POST["token_user"];
$sql_verifica = 'SELECT id_usuario, nome_usuario, email_usuario, photo_usuario FROM usuarios WHERE email_usuario = "'.$email_user.'" and senha_usuario = "'.$senha_user.'"';
$exec_row = $conn->query($sql_verifica);
if ($exec_row->num_rows > 0){
$row = $exec_row->fetch_row();
$retorno = array("retorno" => $row[0], "nome_usuario" => $row[1], "email_usuario" => $row[2], "photo_usuario" => $row[3]);
// Atualiza Token
$id_usuario = $row[0];
$sql_update = 'UPDATE usuarios SET token_usuario = ? WHERE id_usuario = ?';
$stm = $conn->prepare($sql_update);
$stm->bind_param("si", $token_user, $id_usuario);
$stm->execute();
} else {
$retorno = array("retorno" => '0');
}
echo json_encode($retorno);
$conn->close();
?>
listar.php
<?php
$conn = new mysqli("127.0.0.1", "u645954380_ptc", "bonfim1010", "u645954380_ptc");
$sql = "SELECT id_servico, nome, uc, numero_os, data_hora_entrega, endereco, bairro, complemento, tipo, medidor, obs FROM app_venda";
$result = $conn->query($sql);
$result_json = array();
while($row = $result->fetch_assoc()){
$result_json[] = $row;
}
echo json_encode($result_json);
$conn->close();
?>
表格
CREATE TABLE IF NOT EXISTS `app_venda` (
`id_servico` int(11) NOT NULL AUTO_INCREMENT,
`id_user` int(11) NOT NULL,
`tipo` int(11) NOT NULL,
`uc` int(11) NOT NULL,
`nome` varchar(150) NOT NULL,
`setor` int(11) NOT NULL,
`endereco` varchar(500) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
`bairro` varchar(50) NOT NULL,
`complemento` varchar(100) DEFAULT NULL,
`codigo_baixa` varchar(500) DEFAULT NULL,
`status` varchar(50) NOT NULL DEFAULT '1',
`data_hora_entrega` datetime DEFAULT NULL,
`data_hora_conclusao` datetime NOT NULL,
`km_inicial` int(11) NOT NULL,
`km_final` int(11) NOT NULL,
`motivo` varchar(100) DEFAULT NULL,
`numero_os` int(15) DEFAULT NULL,
`medidor` varchar(20) DEFAULT NULL,
`obs` int(11) DEFAULT NULL,
`valorTotal` double NOT NULL,
`apr1` int(11) DEFAULT '1',
`apr2` int(11) DEFAULT '1',
`apr3` int(11) DEFAULT '1',
`apr4` int(11) DEFAULT '1',
`apr5` int(11) DEFAULT '1',
PRIMARY KEY (`id_servico`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
CREATE TABLE IF NOT EXISTS `usuarios` (
`id_usuario` int(11) NOT NULL AUTO_INCREMENT,
`nome_usuario` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`email_usuario` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`senha_usuario` int(11) NOT NULL,
`data_usuario` date NOT NULL,
`photo_user` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`photo_usuario` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`token_usuario` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id_usuario`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ;