۱۳۹۴/۰۹/۰۸, ۱۱:۲۵ ب.ظ
(۱۳۹۴/۰۹/۰۸, ۰۴:۰۸ ب.ظ)hoseinrahimi نوشته:(۱۳۹۴/۰۹/۰۸, ۰۱:۴۶ ب.ظ)Michael.0858 نوشته: با سلام دوستان من یه مشکلی دارم
طرز استفاده دقیق از arrayadapter رو نمیدونم
و از طرفی نمیدونم که ایا مقادیری که با جیسون میگیرم رو درست مقدار رهی میکنم یا نه لطفا کمک کنید...
کد:public class Main extends Activity {
private int term=1;
private ListView listview;
private ArrayList<String> list;
private String[] json1,json2,json3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new getdata().execute();
listview=(ListView)findViewById(R.id.listview);
}
public class getdata extends AsyncTask{
ProgressDialog pd=new ProgressDialog(Main.this);
@Override
protected void onPreExecute() {
pd.setMessage("Loading...");
pd.show();
super.onPreExecute();
}
@Override
protected Object doInBackground(Object... args) {
try {
String data= URLEncoder.encode("term","UTF8")+"="+URLEncoder.encode(term+"","UTF8");
URL link=new URL("http://hoseein.vvs.ir/html_public/wordpress/wp-app/term.php");
URLConnection connect=link.openConnection();
///////////////send data////////////////
connect.setDoOutput(true);
OutputStreamWriter wr=new OutputStreamWriter(connect.getOutputStream());
wr.write(data);
wr.flush();
BufferedReader reader=new BufferedReader(new InputStreamReader(connect.getInputStream()));
StringBuilder sb=new StringBuilder();
String line=null;
while ((line=reader.readLine()) !=null){
sb.append(line);
}
list=new ArrayList<String>();
JSONArray ja=new JSONArray(sb.toString());
for(int i=0;i<ja.length();i++){
JSONObject jo=ja.getJSONObject(i);
json1[i]=(jo.getString("post_title"));
json2[i]=(jo.getString("post_content"));
json3[i]=(jo.getString("comment_count"));
/*
list.add(jo.getString("post_title"));
list.add(jo.getString("post_content"));
list.add(jo.getString("comment_count"));
*/
}
}catch (Exception e){
}
return "";
}
@Override
protected void onPostExecute(Object result) {
if (result == "") {
//ArrayAdapter<String> adapter=new ArrayAdapter<String>(Main.this,android.R.layout.simple_list_item_1,list);
listview.setAdapter(new AI(Main.this, R.layout.main_row, android.R.layout.simple_list_item_1, json1));
pd.dismiss();
}
super.onPostExecute(result);
}
}
class AI extends ArrayAdapter<String>{
public AI(Context context, int resource, int textViewResourceId,
String[] objects) {
super(context, resource, textViewResourceId, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater in=getLayoutInflater();
View row=in.inflate(R.layout.main_row, parent ,false);
TextView title=(TextView) row.findViewById(R.id.main_row_title);
title.setText(json1[position]);
TextView txt=(TextView) row.findViewById(R.id.main_row_content);
txt.setText(json2[position]);
TextView nazar=(TextView) row.findViewById(R.id.main_row_comment);
nazar.setText(json3[position]);
return row;
}
}
}
این که برا من کار کرد
ListView3.java
کد:package com.kelidestan.ListView3;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class ListView3Activity extends Activity {
ListView lv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lv = (ListView) findViewById(R.id.listView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.names));
lv.setAdapter(adapter);
}
}
values/cars.xml
کد:<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="names">
<item name="name_1">پراید</item>
<item name="name_2">پژو 405</item>
<item name="name_3">پژو 206</item>
<item name="name_4">پژو پارس</item>
<item name="name_5">سمند</item>
</string-array>
</resources>
سوال من کلا یه چیز دیگست...
اطلاعات رو از سرور گرفتم اما نمیتونم به وسیله یک اداپتر توی یه لیست ویو نمایشش بدم