Я создаю приложение, в своей деятельности я использовал getIntent.getstringExtra («строка»), эта строка содержит ответ json, в этом ответе у меня есть разные поля, которые мне нужно отображать в виде списка, поэтому как это сделатьКак отображать данные о намерениях в списке?
проверить этот вопрос How to display response in next activity
class AttemptLogin extends AsyncTask<String, String, String> {
boolean failure = false;
JSONObject jobj;
String resultname;
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(getActivity());
pDialog.setMessage("Processing..");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@SuppressWarnings("unused")
@Override
protected String doInBackground(String...args) {
Looper.prepare();
String userids = strtext.toString();
String agesfrom = spfrom.getText().toString();
String agesto=spto.getText().toString();
String heightfroms=spheightfrom.getText().toString();
String heighttos=spheightto.getText().toString();
String language=splang.getText().toString();
String religion = sprelg.getText().toString();
String marriage=spmrgstatus.getText().toString();
String contri=spcountry.getText().toString();
String states=spstate.getText().toString();
String city=spcity.getText().toString();
System.out.println("Email : " + userids);
System.out.println("Email : " + agesfrom);
System.out.println("Days : " + agesto);
System.out.println("Months : " + heightfroms);
System.out.println("Years : " + heighttos);
System.out.println("User : " + language);
System.out.println("Password : " + religion);
System.out.println("Gender : " + marriage);
System.out.println("First NM : " + contri);
System.out.println("Last NM : " + states);
System.out.println("Profile : " + city);
try {
//Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("user_login_id", userids));
params.add(new BasicNameValuePair("age_from", agesfrom));
params.add(new BasicNameValuePair("age_to", agesto));
params.add(new BasicNameValuePair("height_from", heightfroms));
params.add(new BasicNameValuePair("height_to", heighttos));
params.add(new BasicNameValuePair("language", language));
params.add(new BasicNameValuePair("religion", religion));
params.add(new BasicNameValuePair("maritalstatus", marriage));
params.add(new BasicNameValuePair("country", contri));
params.add(new BasicNameValuePair("state", states));
params.add(new BasicNameValuePair("city", city));
params.add(new BasicNameValuePair("version", "apps"));
Log.d("request!", "starting");
// getting product details by making HTTP request
json = jsonParser.makeHttpRequest (
SEARCH_URL, "POST", params);
//check your log for json response
Log.d("Request attempt", json.toString());
final String str = json.toString();
jobj = new JSONObject(json.toString());
final String msg = jobj.getString("searchresult");
resultname=jobj.getString(TAG_NAME);
return json.getString(TAG_SUCCESS);
}catch (JSONException e) {
e.printStackTrace();
}
return null;
}
// After completing background task Dismiss the progress dialog
protected void onPostExecute(String file_url) {
//dismiss the dialog once product deleted
pDialog.dismiss();
Intent intent=new Intent(getActivity(),SearchResults.class);
intent.putExtra("id", strtext);
intent.putExtra("whole",resultname);
startActivity(intent);
}}
мой nextactivity
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.list_view_searchresult);
Id=this.getIntent().getStringExtra("id");
System.out.println("searching id"+Id);
results=this.getIntent().getStringExtra("whole");
System.out.println("Results"+results);
nomathc=(TextView)findViewById(R.id.no_match);
{ "SearchResult": [{ "match_detail_id": 369, "profile_id": "GM686317", "имя": "Сонал похлопывание el "," image ":" "," location ":" Rajkot, Gujarat, India "," mothertongue ":" Gujarati "," религия ":" индуистская "," профессия ":" профессор/преподаватель "," образование «:« Магистратура - искусство/наука/торговля/другие »} , {" match_detail_id ": 396," profile_id ":" GM780609 "," name ":" Hetal Trivedi "," image ":" "," location " : «Раджкот, Гуджарат, Индия», «родной язык»: «Гуджарати», «религия»: «индус», «оккупация»: «административный профессионал», «образование»: «бакалавры - искусство/наука/торговля/другие»} , {"match_detail_id": 1078, "profile_id": "GM540027", "name": "Shruti Dave", "image": "", "location": "Rajkot, Gujarat, India", "mothertongue": " гуджаратский», "религия": "Hindu", "оккупация": "Образование Профессионал", "образование": "Masters - Искусство/Наука/Торговля/Другое"} ] }
моего адаптер класс
public class CustomAdapterSearch extends BaseAdapter{
private Context context;
private ArrayList<HashMap<String,String>> listData;
private AQuery aQuery;
private static final String TAG_NAME="name";
private static final String TAG_PROFILE="profile_id";
private static final String TAG_IMAGE="image";
private static final String TAG_CAST="cast";
private static final String TAG_AGE="age";
private static final String TAG_LOCATION="location";
public CustomAdapterSearch(Context context,ArrayList<HashMap<String,String>> listData) {
this.context = context;
this.listData=listData;
aQuery = new AQuery(this.context);
}
@Override
public int getCount() {
return listData.size();
}
@Override
public Object getItem(int position) {
return listData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(R.layout.list_item_searchresult, null);
holder.propic = (ImageView) convertView.findViewById(R.id.propicsearch);
holder.txtproname = (TextView) convertView.findViewById(R.id.txtpronamesearch);
holder.txtproid = (TextView) convertView.findViewById(R.id.txtproidsearch);
holder.txtprofilecast = (TextView) convertView.findViewById(R.id.txtprofilecastsearch);
holder.txtprofileage = (TextView) convertView.findViewById(R.id.txtprofileagesearch);
holder.txtprofileplace = (TextView) convertView.findViewById(R.id.txtprofileplacesearch);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.txtproname.setText(listData.get(position).get(TAG_NAME));
holder.txtproid.setText(listData.get(position).get(TAG_PROFILE));
holder.txtprofilecast.setText(listData.get(position).get(TAG_CAST));
holder.txtprofileage.setText(listData.get(position).get(TAG_AGE));
holder.txtprofileplace.setText(listData.get(position).get(TAG_LOCATION));
aQuery.id(holder.propic).image(listData.get(position).get(TAG_IMAGE),true,true,0,R.drawable.ic_launcher);
// image parameter : 1 : memory cache,2:file cache,3:target width,4:fallback image
return convertView;
}
class ViewHolder{
ImageView propic;
TextView txtproname;
TextView txtproid;
TextView txtprofilecast;
TextView txtprofileage;
TextView txtprofileplace;
}
}
я предлагаю не отправлять данные в формате JSON через намерение. Потому что, если длина json слишком велика, это не сработает. Возможно, вы получите ошибку javaBinder. – Amsheer
поэтому дайте решение –
Перед передачей данных с использованием намерения просто проанализируйте данные json и добавьте в bean-компонент. Это просто проанализировать данные и добавить в список просто вызов из любого места, где бы вы ни хотели – Amsheer