2016-09-05 3 views
0

Я работал над фрагментом списка с определенными элементами. при щелчке по каждому элементу мне нужно открыть новый фрагмент списка для этого элемента в фрагменте. Так им разместить свой listfragment код ....Onclick item on ListFragment открыть новый пользовательский списокFragment

public class SellListFragment extends ListFragment implements OnItemClickListener { 

String[] menutitles; 
TypedArray menuIcons; 

SellCustomAdapter adapter; 
private List<RowItem> rowItems; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    return inflater.inflate(R.layout.list_fragment, null, false); 
} 

@Deprecated 
@Override 
public void onActivityCreated(Bundle savedInstanceState) { 

    super.onActivityCreated(savedInstanceState); 

    menutitles = getResources().getStringArray(R.array.titles); 
    menuIcons = getResources().obtainTypedArray(R.array.icons); 

    rowItems = new ArrayList<RowItem>(); 

    for (int i = 0; i < menutitles.length; i++) { 
     RowItem items = new RowItem(menutitles[i], menuIcons.getResourceId(i, -1)); 
     rowItems.add(items); 
    } 

    adapter = new SellCustomAdapter(getActivity(), rowItems); 
    setListAdapter(adapter); 
    getListView().setOnItemClickListener(this); 

} 

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, 
         long id) { 
    // ((CategorySelectedListener)getActivity()).categorySelected(position); 
    //Toast.makeText(getActivity(), menutitles[position], Toast.LENGTH_SHORT).show(); 
    ; 
} 
} 
+0

В чем проблема, с которой вы сталкиваетесь? – tpk

+0

Скажите, пожалуйста, как перейти к следующему списку. – gStephin

+0

Я не понял, что вы хотите. – tpk

ответ

1

Создать эти ArrayLists в вас текущих SellListFragment на уровне класса.

ArrayList<ArrayList<String>> subCategoriesList=new ArrayList<>();  //Arraylist which will contain all the subCategories. 
ArrayList<String> subCategoriesForCategory1=new ArrayList<>();  //ArrayList of sub categories for category 1.   
ArrayList<String> SubCategoriesForCategory2=new ArrayList<>();  //Repeat for as many categories you have. 

В onCreate() заполнить ваши arrylists суба-категорию.

subCategoriesForCategory1.add("SubCat1"); 
subCategoriesForCategory1.add("SubCat2");  //Repeat as per your needs 

subCategoriesForCategory2.add("SubCat1"); 
subCategoriesForCategory2.add("SubCat2");  //Repeat as per your needs 

subCategoriesList.add(subCategoriesForCategory1);   //add to main arrayList 
subCategoriesList.add(subCategoriesForCategory2);   //Repeat 

Поместите этот код в onItemClick()

FragmentManager fm=getActvity().getSupportFragmentManager(); 
FragmentTransaction ft=fm.beginTransaction(); 
FragmentToBeReplacedWith fragmentObj=new FragmentToBeReplacedWith(); 
Bundle bundle=new Bundle(); 
bundle.putStringArrayList("subcategories",subCategoriesList.get(position));  //Repeat for as many values you want to pass. Explore for what suits your needs. 
fragmentObj.setArguments(bundle); 
ft.replace(R.id.id_of_fragment_container,fragmentObj); 
ft.addToBackStack("setSomeUniqueName"); //Optional and nullable 
ft.commit(); 

В FragmentToBeReplacedWith создать глобальную ArrayList

ArrayList<String> subCategories=new ArrayList<>(); 

В onCreate() из FragmentToBeReplacedWith сделать

Bundle bundle=getArguments(); 
subCategories=bundle.getStringArrayList("subcategories"); 

Теперь используйте значения в ArrayList subCategories где вам нужно. Надеюсь, это поможет.