gpt4 book ai didi

安卓 : take Data in ListView

转载 作者:行者123 更新时间:2023-11-29 17:15:50 25 4
gpt4 key购买 nike

实际上在我的项目中,我被阻止了。所以,我第一次向 Stackoverflow 社区询问。我是开发新手。

所以,我有一个包含数据的 MySql,但我不想在我的应用程序中看到用户的项目。

为此,我有这个:

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();
}


}
}

}
}

file.php 是正确的,因为 System.print 中的 JSONArray 没问题,但是我尝试使用一些 TextView 在最后显示板,但是我没有成功。



如何在 ListView 中使用 meuble[0] 、 meuble[1]、meuble[2](它是项目的字符串名称板)?






最佳答案





以下是在 ListView 中显示数据所需执行的操作,



修改了 onPostExecute() 方法:



 @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);

}

ArrayAdapter<String> listAdapter=new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,meubles);

listView.setAdapter(listAdapter);



System.out.println(meubles);


} catch (JSONException e) {
e.printStackTrace();
}


}
}

添加了什么?

您需要一个适配器来在 ListView 中显示项目。您可以通过扩展 arrayadapter 来创建自定义适配器类,也可以使用 arrayadapter 而不进行如图所示的自定义。

添加的代码:

创建一个新的适配器,

ArrayAdapter listAdapter=new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,list);

为您的 ListView 设置适配器,

listView.setAdapter(listAdapter);

关于安卓 : take Data in ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51635962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com