У меня есть gridview для вкладки tabLayout. Я загружаю значения из базы данных mysql для заполнения текстовых просмотров gridview. Я вижу, что синтаксический анализ JSON работает правильно и возвращает правильный результат JSON. Но ничего не видно в виде сетки. GridView ничего не показывает после того, как JSON анализирует значения в своих позициях
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.mysampleapp.R;
import java.util.ArrayList;
public class GridAdapterStores extends BaseAdapter {
private Context context;
private ArrayList<String> storename=new ArrayList<String>();
private ArrayList<Integer> imagelinks=new ArrayList<Integer>();
public GridAdapterStores(Context c,ArrayList<String> storename, ArrayList<Integer> imagelinks) {
context = c;
this.imagelinks = imagelinks;
this.storename = storename;
}
@Override
public int getCount() {
return storename.size();
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent){
View grid;
if (convertView == null) {
grid = new View(context);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
grid = inflater.inflate(R.layout.grid_stores,parent,false);
}
else {
grid = (View) convertView;
}
TextView textViewStoreName = (TextView) grid.findViewById(R.id.store_name);
ImageView imageViewStoreImage = (ImageView) grid.findViewById(R.id.store_image);
textViewStoreName.setText(storename.get(position));
Integer x=imagelinks.get(position);
imageViewStoreImage.setImageResource(x);
return grid;
}
}
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.support.v4.app.Fragment;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.Toast;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.widget.AdapterView.OnItemClickListener;
import android.view.View.OnClickListener;
import com.mysampleapp.R;
import java.util.ArrayList;
public class StoresFragment extends Fragment {
private ProgressDialog loading;
private ArrayList<String> storenamefinal=new ArrayList<String>();
private ArrayList<Integer> imagelinksfinal=new ArrayList<Integer>();
@Nullable
@Override
public View onCreateView(LayoutInflater inflater , ViewGroup container,Bundle savedInstanceState){
return inflater.inflate(R.layout.stores_layout,null);
}
@Override
public void onViewCreated(final View view, final Bundle savedInstanceState){
super.onViewCreated(view, savedInstanceState);
GridView gridview=(GridView) getActivity().findViewById(R.id.grid_stores);
getData();
final GridAdapterStores gridadapter= new GridAdapterStores(getActivity(),storenamefinal,imagelinksfinal);
gridview.setAdapter(gridadapter);
gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
/* Intent i=new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(gridadapter.getItem(position).getImageUrlString()));
startActivity(i);}});*/
// Toast.makeText(getActivity(), "You Clicked at " + cat[+position], Toast.LENGTH_SHORT).show();
Intent i = new Intent(getActivity(), stores_show.class);
i.putExtra("storename", storenamefinal.get(position));
getActivity().startActivity(i);
}
});
}
//public class getData extends AsyncTask<String,>>{
//}
private void getData() {
loading = ProgressDialog.show(getActivity(), "Please wait...", "Fetching...", false, false);
String url = Config1.DATA_URL;
Toast.makeText(getActivity(), url, Toast.LENGTH_LONG).show();
StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
loading.dismiss();
showJSON(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getActivity(),error.getMessage().toString(),Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(getActivity());
requestQueue.add(stringRequest);
}
private void showJSON(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray result = jsonObject.getJSONArray(Config1.JSON_ARRAY);
Toast.makeText(getActivity(),result.toString(),Toast.LENGTH_LONG).show();
int i=result.length();
Log.i("Result Length",result.toString());
for(int j=0;j<i;j++){
storenamefinal.add(null);
imagelinksfinal.add(null);
}
String temp;
for(int j=0;j<i;j++)
{
JSONObject Data = result.getJSONObject(j);
Log.i("Data",Data.toString());
temp= (Data.getString(Config1.KEY_PRIO));
Log.i("temp", temp.toString());
storenamefinal.set(Integer.parseInt(temp) - 1, Data.getString(Config1.KEY_NAME));
Log.i("Result Length", storenamefinal.toString());
imagelinksfinal.add(R.drawable.sg1);
}
Log.i("Result Length", storenamefinal.toString());
Toast.makeText(getActivity(),storenamefinal.get(0),Toast.LENGTH_LONG).show();
} catch (JSONException e) {
e.printStackTrace();
}
}
}
Я попытался найти на Google и StackOverflow, ничего не нашел успешной,
{ "результат": [{ "StoreName": "Flipkart. ком», "imagelinks": "", "mainpriority": "2"}, { "StoreName": "Jabong.com", "imagelinks": "", "mainpriority": "4"}, { "StoreName" : "Myntra.com", "imagelinks": "", "mainpriority": "5"}, { "StoreName": "Ам azon.in " "imagelinks": "", "mainpriority": "1"}, { "StoreName": "Snapdeal.com", "imagelinks": "", "mainpriority": "3"}, {" StoreName ":" Koovs.in», "imagelinks": "", "mainpriority": "6"}, { "StoreName": "Limeroad.com", "imagelinks": "", "mainpriority": "7" }, { "StoreName": "Shopperstop.com", "imagelinks": "", "mainpriority": "8"}, { "StoreName": "Stalkbuylove.com", "imagelinks": "", "mainpriority" : "9"}, { "StoreName": "Yepme.com", "imagelinks": "", "mainpriority": "10"}, { "StoreName": "Faballey.com", "imagelinks": "" , "mainpriority": "11"}, {"storename": "Fabindia.com", "imagelinks": "", "mainpriority": "12"}, {"storename": "PrettySecrets.com", "imagelinks" ":" " "mainpriority": "13"}, { "StoreName": "AmericanSwan.com", "imagelinks": "", "mainpriority": "14"}, { "StoreName":" Clovia.com », "imagelinks": "", "mainpriority": "15"}, { "StoreName": "Bata.in", "imagelinks": "", "mainpriority": "16"}, { "StoreName": "TrendyBharat.com", "imagelinks": "", "mainpriority": "17"}, { "StoreName": "Royzez.com", "imagelinks": "", "mainpriority": "18"}]} `
Storenamefinal будет иметь вхождения storenames из результате JSON (выше)
вы можете поделиться storenamefinal значение? –
Спасибо за ответ. Я редактировал мой вопрос, чтобы включить JSON и storenamefinal. –
какой текст отображается для 1-й позиции textViewStoreName в виде сетки –