2016-03-22 6 views
0

Я хочу, чтобы загрузить категорию и продукты, такие как изображение, показанное: осколочных enter image description hereAndroid создает динамические фрагменты с динамическими данными, используя gridview и realm DB?

/** 
* A {@link FragmentPagerAdapter} that returns a fragment corresponding to 
* one of the sections/tabs/pages. 
*/ 
public class SectionsPagerAdapter extends FragmentPagerAdapter { 

    public SectionsPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     Category ctID = mSubCategory.get(position); 
     int id = ctID.getCategory_id(); 
     return PlaceholderFragment.newInstance(getBaseContext(),id); 
    } 

    @Override 
    public int getCount() { 
     // Set number of fragments to be created 
     if(SubCategoriesCount == 0) { 
      Category ct; 
      ct = mSubCategory.get(0); 
      if (ct != null) 
       return 1; 
     } 
     return SubCategoriesCount; 
    } 
} 

Создания фрагмента с помощью newInstance с различными данными.

PlaceholderFragment.java

public class PlaceholderFragment extends Fragment { 

private static final String FragmentCategoryID = "CategoryID"; 
private static Context cTx; 
private static String catName; 
public PlaceholderFragment() { 
} 

public static PlaceholderFragment newInstance(Context ctx, int id){ 
    PlaceholderFragment fragment = new PlaceholderFragment(); 
    cTx = ctx; 
    Log.d("New Fragment Created ", ":" + id); 
    Bundle args = new Bundle(); 
    args.putInt(FragmentCategoryID, id); 
    fragment.setArguments(args); 
    return fragment; 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_category_products_view, container, false); 

    RealmResults<Product> ProductList; 
    ProductList = GetProducts(getArguments().getInt(FragmentCategoryID)); 
    Log.d("Fragment Arguments", "" + getArguments().getInt(FragmentCategoryID)); 

    GridView gv = (GridView) rootView.findViewById(R.id.gridViewFrg); 

    gv.setAdapter(new AdapterRealmProduct(getActivity(), R.layout.grid_view_main, ProductList, true)); 

    TextView textView = (TextView) rootView.findViewById(R.id.section_label); 

    textView.setText(getString(R.string.section_format, getArguments().getInt(FragmentCategoryID))+ ":::"+catName); 

    return rootView; 
} 

private RealmResults<Product> GetProducts(int CategoryID){ 

    RealmConfiguration realmConfigs; 
    realmConfigs = new RealmConfiguration.Builder(getActivity()).build(); 
    Realm realmtm = Realm.getInstance(realmConfigs); 
    Category camt = realmtm.where(Category.class).equalTo("category_id", CategoryID).findFirst(); 
    catName = camt.getName(); 
    RealmResults<Product> results = realmtm.where(Product.class).equalTo("category_id", CategoryID).findAll(); 
    try{ 
    if(results != null && results.isValid()) { 
     return results; 
    } 
    }catch (IllegalStateException e){ 
     e.printStackTrace(); 
    }finally { 
     //realmtm.close(); 
    } 
    return results; 
} 

}

Он загружает создает несколько фрагментов в качестве значения SubCategoriesCount. Но данные во всех фрагментах одинаковы. Средства Все gridViews на всех фрагментах имеют одинаковые данные сетки.

textView.setText(getString(R.string.section_format, getArguments().getInt(FragmentCategoryID))+ ":::"+catName); 

CategoryName и ID отображает .. но данные не меняются ... это может быть данные Realm. как обращаться с ручкой области в разных активациях.

ответ

0

был повторный данные в королевстве. Поэтому в приведенном выше коде нет проблем. Я не заметил, что происходит в базе данных царства.

 Смежные вопросы

  • Нет связанных вопросов^_^