No es posible establecer SwipeFlingAdapterView desde el adaptador de matriz

Tengo uso el https://github.com/Diolor/Swipecards y trabaja perfecto si los datos son estáticos pero no está trabajando con AsyncTask

Ahora quiero ligar el adaptador con datos json. Pero no funciona.

 public class HomeFragment extends Fragment { private Context context; private ArrayList<Productp> al; private ArrayAdapter<Productp> arrayAdapter; SwipeFlingAdapterView flingContainer; ImageView img_product; private ProgressDialog pDialog; JSONParser jParser = new JSONParser(); private static String url_all_products = "http://www.example.com/prod.php"; // JSON Node names private static final String TAG_SUCCESS = "success"; private static final String TAG_PRODUCTS = "products"; private static final String TAG_IMAGE = "url"; JSONArray products = null; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_home, container, false); context = getActivity(); initUI(rootView); return rootView; } private void initUI(View view) { flingContainer = (SwipeFlingAdapterView) view.findViewById(R.id.frame); new Loaditems().execute(); } class Loaditems extends AsyncTask<String, String, String> { @Override protected void onPreExecute() { super.onPreExecute(); pDialog = new ProgressDialog(context); pDialog.setMessage("Loading products. Please wait..."); pDialog.setIndeterminate(false); pDialog.setCancelable(false); pDialog.show(); } protected String doInBackground(String... args) { List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("range", "1")); JSONObject json = jParser.makeHttpRequest(url_all_products, "GET", params); try { // Checking for SUCCESS TAG int success = json.getInt(TAG_SUCCESS); if (success == 1) { products = json.getJSONArray(TAG_PRODUCTS); al = new ArrayList<Productp>(); for (int i = 0; i < products.length(); i++) { JSONObject c = products.getJSONObject(i); Productp pp = new Productp(); pp.portal = c.getString(TAG_IMAGE); al.add(pp); } } else { } } catch (JSONException e) { e.printStackTrace(); } return null; } protected void onPostExecute(String file_url) { pDialog.dismiss(); arrayAdapter = new ProductAdpater(context, al); flingContainer.setAdapter(arrayAdapter); } } 

Método del adaptador:

  private class ProductAdpater extends ArrayAdapter<Productp> { Context mContext; public ProductAdpater(Context context, List<Productp> items) { super(context, R.layout.row_homeview, items); try { this.mContext = context; } catch (Exception e) { e.printStackTrace(); } } @Override public int getCount() { // TODO Auto-generated method stub return al.size(); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } public View getView(final int position, View convertView, ViewGroup parent) { View view = convertView; ViewHolder holder = null; LayoutInflater mInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); if (view == null) { view = mInflater.inflate(R.layout.row_homeview, parent, false); holder = new ViewHolder(); holder.imgIcon = (ImageView) view .findViewById(R.id.addviewimage); view.setTag(holder); } else holder = (ViewHolder) view.getTag(); UrlImageViewHelper.setUrlDrawable(holder.imgIcon, al.get(position).portal); return view; } class ViewHolder { ImageView imgIcon; } } } 

Clase de producto:

 public class Productp { public String portal=""; } 

Cuando ejecuto el código anterior. No mostrará nada.

Incluso este código se ejecuta correctamente pero no enlaza los datos al adaptador.

No hay ninguna demostración del error en logcat.

También tengo que debug el código.

 the execution exit from public ProductAdpater(Context mcontext, ArrayList<Productp> items) { super(mcontext, R.layout.row_homeview, items); try { context = mcontext; // this.list = items; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } 

No ejecuta el método getView

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

¿Cómo puedo solucionar esto?

2 Solutions collect form web for “No es posible establecer SwipeFlingAdapterView desde el adaptador de matriz”

Sólo tiene que notificar el conjunto de datos actualizado al adaptador

mediante el uso

NotifyDataSetChanged ();

NotifyDataSetInvalidated ()

He resuelto esto.

Acabo de poner el – arrayAdapter.notifyDataSetChanged(); OnPostExecute.

Mi nuevo código actualizado en onPostExecute:

  protected void onPostExecute(String file_url) { pDialog.dismiss(); arrayAdapter = new ProductAdpater(context, al); flingContainer.setAdapter(arrayAdapter); arrayAdapter.notifyDataSetChanged(); } 

Se hace.

  • Cómo desplazarse y desplazarse hasta el último en Appium
  • ListView en la ficha de desplazamiento no se actualiza a menos que se reinicie
  • No se puede implantar OnItemClickListener en android-swipelistview
  • Twitter para Android como menú rápido de desplazamiento rápido
  • Desplazamiento por Android en la lista
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.