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.
- Cierre una actividad pasando de derecha a izquierda con una animación suave para ir a la segunda actividad
- Deslizar entre las actividades de android
- Cómo desplazarse y desplazarse hasta el último en Appium
- Android ViewFlipper + Detector de gestos
- Android PagerView entre las actividades
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?
- Android listview, pase a la acción
- Implementación de 47degree android-swipelistview para desplazar android ListViewItem
- Android: deslizar el elemento de la lista causa clickOnItem
- Biblioteca avanzada de RecyclerView - ejemplos de código
- Vista de desplazamiento de Android?
- Desplazamiento por Android en la lista
- Twitter para Android como menú rápido de desplazamiento rápido
- Android ListView Deslizar hacia la derecha y hacia la izquierda para aceptar y rechazar
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 obtener la configuración regional del dispositivo después de cambiar la configuración regional de la aplicación
- Cómo recibir paquetes de multidifusión en Android