Android:在ListView中获取数据
实际上,在我的项目中,我被阻止了。因此,我第一次询问Stackoverflow社区。我是新手 所以,我有一个MySql和我的数据,我不想在我的应用程序中看到用户的项目 为此,我有以下建议:Android:在ListView中获取数据,android,mysql,xml,database,Android,Mysql,Xml,Database,实际上,在我的项目中,我被阻止了。因此,我第一次询问Stackoverflow社区。我是新手 所以,我有一个MySql和我的数据,我不想在我的应用程序中看到用户的项目 为此,我有以下建议: public class SuccessActivity extends AppCompatActivity { public static final int CONNECTION_TIMEOUT = 10000; public static final int READ_TIMEOUT
public class SuccessActivity extends AppCompatActivity {
public static final int CONNECTION_TIMEOUT = 10000;
public static final int READ_TIMEOUT = 15000;
private ListView listView;
protected String meubles[] = new String[100];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_success);
Intent intent = getIntent();
String id = intent.getStringExtra("id");
this.listView = (ListView) findViewById(R.id.liste);
new SuccessActivity.Recup().execute(id);
}
//PRIVATE CLASSE POUR AFFICHER LES MEUBLES
private class Recup extends AsyncTask<String, String, String> {
HttpURLConnection conn;
URL url = null;
@Override
protected String doInBackground(String... params) {
try {
//url d'ou reside mon fichier php
url = new URL("http://opix-dev.fr/mytinyhomme/personne/afficher.meuble.php");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "exception";
}
try {
// parametrage du HttpURLConnection pour recevoir et envoyer des donner à mysql
conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(READ_TIMEOUT);
conn.setConnectTimeout(CONNECTION_TIMEOUT);
conn.setRequestMethod("POST");
// setDoInput and setDoOutput method depict handling of both send and receive
conn.setDoInput(true);
conn.setDoOutput(true);
// Append parameters to URL
Uri.Builder builder = new Uri.Builder()
.appendQueryParameter("id", params[0]);
String query = builder.build().getEncodedQuery();
// Open connection for sending data
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(query);
writer.flush();
writer.close();
os.close();
conn.connect();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
return "exception";
}
try {
int response_code = conn.getResponseCode();
// Check if successful connection made
if (response_code == HttpURLConnection.HTTP_OK) {
// Read data sent from server
InputStream input = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
StringBuilder result = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
result.append(line);
}
// Pass data to onPostExecute method
return (result.toString());
} else {
return ("unsuccessful");
}
} catch (IOException e) {
e.printStackTrace();
return "exception";
} finally {
conn.disconnect();
}
}
@Override
protected void onPostExecute(String resulta) {
//this method will be running on UI thread
if (resulta.equalsIgnoreCase("false")) {
} else if (resulta.equalsIgnoreCase("exception") || resulta.equalsIgnoreCase("unsuccessful")) {
} else {
try {
JSONArray nom = new JSONArray(resulta);
System.out.println(nom);
String meubles[] = new String[100];
for (int i = 0; i < nom.length(); i++){
JSONObject jsonobject = nom.getJSONObject(i);
meubles[i]= jsonobject.getString("nom");
System.out.println(jsonobject);
System.out.println(meubles);
item.setText( meubles[i]);
}
System.out.println(meubles);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
}
公共类成功活动扩展了AppCompatActivity{
公共静态最终int连接\u超时=10000;
公共静态最终整型读取超时=15000;
私有列表视图列表视图;
受保护字符串meubles[]=新字符串[100];
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_success);
Intent=getIntent();
字符串id=intent.getStringExtra(“id”);
this.listView=(listView)findViewById(R.id.liste);
new SuccessActivity.Recup().execute(id);
}
//一等兵
私有类Recup扩展了异步任务{
httpurl连接连接;
URL=null;
@凌驾
受保护的字符串doInBackground(字符串…参数){
试一试{
//url d'ou驻留在mon fichier php
url=新url(“http://opix-dev.fr/mytinyhomme/personne/afficher.meuble.php");
}捕获(格式错误){
//TODO自动生成的捕捉块
e、 printStackTrace();
返回“异常”;
}
试一试{
//接收和特使的HTTPURL连接参数
conn=(HttpURLConnection)url.openConnection();
conn.setReadTimeout(读取超时);
连接设置连接超时(连接超时);
conn.setRequestMethod(“POST”);
//setDoInput和setDoOutput方法描述了发送和接收的处理
conn.setDoInput(真);
连接设置输出(真);
//将参数附加到URL
Uri.Builder=新的Uri.Builder()
.appendQueryParameter(“id”,参数[0]);
字符串查询=builder.build().getEncodedQuery();
//打开用于发送数据的连接
OutputStream os=conn.getOutputStream();
BufferedWriter=新的BufferedWriter(
新的OutputStreamWriter(操作系统,“UTF-8”);
writer.write(查询);
writer.flush();
writer.close();
os.close();
连接();
}捕获(IOE1异常){
//TODO自动生成的捕捉块
e1.printStackTrace();
返回“异常”;
}
试一试{
int response_code=conn.getResponseCode();
//检查连接是否成功
if(response\u code==HttpURLConnection.HTTP\u OK){
//读取从服务器发送的数据
InputStream input=conn.getInputStream();
BufferedReader reader=新的BufferedReader(新的InputStreamReader(输入));
StringBuilder结果=新建StringBuilder();
弦线;
而((line=reader.readLine())!=null){
结果。追加(行);
}
//将数据传递给onPostExecute方法
返回(result.toString());
}否则{
返回(“未成功”);
}
}捕获(IOE异常){
e、 printStackTrace();
返回“异常”;
}最后{
连接断开();
}
}
@凌驾
受保护的void onPostExecute(字符串结果){
//此方法将在UI线程上运行
if(结果等信号情况(“假”)){
}else if(resulta.equalsIgnoreCase(“异常”)| | resulta.equalsIgnoreCase(“不成功”)){
}否则{
试一试{
JSONArray nom=新JSONArray(结果);
系统输出打印项次(nom);
字符串meubles[]=新字符串[100];
对于(int i=0;i
file.php
是正确的,因为System.print中的JSONArray是可以的,但是我尝试了一些文本视图来在最后显示电路板,但没有成功
如何在列表视图中使用meuble[0]、meuble[1]、meuble[2](它是项目的字符串名称)呢?
以下是在列表视图中显示数据所需的操作
修改的onPostExecute()方法:
@覆盖
受保护的void onPostExecute(字符串结果){
//此方法将在UI线程上运行
if(结果等信号情况(“假”)){
}else if(resulta.equalsIgnoreCase(“异常”)| | resulta.equalsIgnoreCase(“不成功”)){
}否则{
试一试{
JSONArray nom=新JSONArray(结果);
系统输出打印项次(nom);
字符串meubles[]=新字符串[100];
对于(int i=0;i