ورود

View Full Version : سوال: نمایش داده ها در custom listview



leila71
دوشنبه 02 فروردین 1395, 06:27 صبح
سلام
سال نوتون مبارک
من میخوام اطلاعاتی که از json میگیرم رو در لیست ویو custom شده نمایش بدم برای این منظور کدی رو نوشتم و به من ج نمیده خواهشا راهنمایی کنید
من 2 تا edittext دارم که توش تاریخ رو به صورت 1390 و 1391 وارد میکنم و حالا داده های بین این دو تاریخ رو میخوام تو لیست ویو نمایش بدم
این کلاس MainActivity هست
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import Parser.Myjson_Parser;
import android.R.integer;
import android.app.Activity;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.PowerManager;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends Activity {


private EditText getfdate;
private EditText gettdate;
private Button submit;
private String fdate;
private String tdate;
//private ListView mListView;
private ArrayList<String> date;
private ArrayList<String> title;
//ArrayAdapter<String> mAdapter;
//List<Data> dataha;
//Activity context;
DataAdapter adapter;
ListView listProduct;
ArrayList<Data> records;



Myjson_Parser jParser = new Myjson_Parser();


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//context=this;

getfdate = (EditText) findViewById(R.id.fdate);
gettdate = (EditText) findViewById(R.id.tdate);


//listProduct = (ListView) findViewById(R.id.listView1);




submit = (Button) findViewById(R.id.btn);


submit.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View v) {


fdate = String.valueOf(getfdate.getText().toString());
Log.d("TAG", "your fdate :" + fdate);


tdate = String.valueOf(gettdate.getText().toString());
Log.d("TAG", "your tdate :" + tdate);


new JSONParse().execute();
}
});


}


class JSONParse extends AsyncTask<String, Void, ArrayList<String>> {
JSONArray mtitle;
JSONArray mdate;


@Override
protected void onPreExecute() {
super.onPreExecute();


}


@Override
protected ArrayList<String> doInBackground(String... args) {


JSONObject object = jParser
.getJSONFromUrl("http://10.0.2.2/datejson.php?fdate="
+ fdate + "&tdate=" + tdate);
Log.d("TAG", "object :" + object.toString());


try {
mtitle = object.getJSONArray("title");
mdate = object.getJSONArray("date");


} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}


int NumOfObjects = mtitle.length();
Log.d("TAG", "NumOfObjects :" + NumOfObjects);


return null;


}


protected void onPostExecute(ArrayList<String> we) {


title = new ArrayList<String>();
date = new ArrayList<String>();


if (mtitle != null) {


int len = mtitle.length();
Log.d("TAG", "length :" + len);


for (int i = 0; i < len; i++) {


try {
title.add(mtitle.get(i).toString());
date.add(mdate.get(i).toString());


} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


Log.d("TAG", "title :" + title);
Log.d("TAG", "date :" + date);


Context context = MainActivity.this;
//mAdapter = new ArrayAdapter<String>(context,
//R.layout.custom_textview, title);
//mListView.setAdapter(mAdapter);
records=new ArrayList<Data>();


listProduct=(ListView)findViewById(R.id.listView1) ;


adapter=new DataAdapter(context, R.layout.custom_listview,R.id.txttitle,
records);


listProduct.setAdapter(adapter);



}
}
protected void onPostExecute(Void result){






Log.e("size", records.size() + "");


adapter.notifyDataSetChanged(); //notify the ListView to get new records





}

}
اینم کلاس DataAdapter


public class DataAdapter extends ArrayAdapter<Data> {





int groupid;


ArrayList<Data> records;


Context context;





public DataAdapter(Context context, int vg, int id, ArrayList<Data>
records) {


super(context, vg, id, records);


this.context = context;


groupid = vg;


this.records = records;





}





public View getView(int position, View convertView, ViewGroup parent) {





LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_S ERVICE);


View itemView = inflater.inflate(groupid, parent, false);


TextView title = (TextView) itemView.findViewById(R.id.txttitle);


title.setText(records.get(position).gettitle());


TextView date = (TextView) itemView.findViewById(R.id.txtdate);


date.setText(records.get(position).getdate());





return itemView;


}


}
اینم کلاس Data


public class Data {

private String title;


private String date;


public void settitle(String title){this.title=title;}


public void setdate(String date){this.date=date;}


public String gettitle(){return title;}


public String getdate(){return date;}





}
خواهشا کمک کنید
مرسیییییییی

saeed_g21
دوشنبه 02 فروردین 1395, 19:57 عصر
پیغام های قرمز رنگ ارائه شده در LogCat رو بفرستین

leila71
سه شنبه 03 فروردین 1395, 16:47 عصر
پیغام های قرمز رنگ ارائه شده در LogCat رو بفرستین

مشکل اینه که اصلا هیچ خطایی نمیده انگار که کدهای مربوط به لیست ویو رو اصلا اجرا نمیکنه