There is such a class in which the custom ListView described. I need to make it so that by clicking on each item in the list, a separate DialogFragment . (First.class = DialogFragment)
This method crashes the application when you click on any item from the list:
@Override public void onListItemClick(ListView l, View v, int position, long id){ switch(position){ case 0: i = new Intent(getActivity().getApplicationContext(), First.class); break; } startActivity(i); } Full class code:
package ua.nikoz47.mobilewaiter.Tabs; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.ListFragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ListView; import android.widget.SimpleAdapter; import java.util.ArrayList; import java.util.HashMap; import ua.nikoz47.mobilewaiter.Food.First; import ua.nikoz47.mobilewaiter.R; public class Menu extends ListFragment{ Intent i; String[] menu_list={ "Перші страви", "Другі страви", "Десерти", "Алкогольні напої", "Безалкогольні напої"}; int[] menu_icons={ R.drawable.first, R.drawable.second, R.drawable.dessert, R.drawable.alcohol, R.drawable.soft_drinks}; ArrayList<HashMap<String, String>> data=new ArrayList<>(); SimpleAdapter adapter; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { HashMap<String, String> map=new HashMap<>(); for(int i=0;i<menu_list.length;i++) { map=new HashMap<>(); map.put("MenuItem", menu_list[i]); map.put("MenuImage", Integer.toString(menu_icons[i])); data.add(map); } String[] from={"MenuItem","MenuImage"}; int[] to={R.id.menu_textView,R.id.menu_imageView}; adapter=new SimpleAdapter(getActivity(), data, R.layout.custom_menu, from, to); setListAdapter(adapter); return super.onCreateView(inflater, container, savedInstanceState); } @Override public void onListItemClick(ListView l, View v, int position, long id){ switch(position){ case 0: i = new Intent(getActivity().getApplicationContext(), First.class); break; } startActivity(i); } } Code First.class (Dialog Fragment)
package ua.nikoz47.mobilewaiter.Food; import android.app.DialogFragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.SearchView; import ua.nikoz47.mobilewaiter.R; public class First extends DialogFragment { ListView lv; SearchView sv; ArrayAdapter<String> adapter; String[] first_list={ "Борщ", "Борщ Зелений", "Грибний суп", "Солянка"}; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.dialog_fragment_first, null); getDialog().setTitle("Перші страви"); lv=(ListView) rootView.findViewById(R.id.listView); sv=(SearchView) rootView.findViewById(R.id.searchView); adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, first_list); lv.setAdapter(adapter); sv.setQueryHint("Пошук страви..."); sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String txt) { return false; } @Override public boolean onQueryTextChange(String txt) { adapter.getFilter().filter(txt); return false; } }); return rootView; } }
DialogFragment, and in the question you ask about it. The question is how to activate the dialog instead of activating? - pavlofffFragmentManager. ThegetActivity()method returns the link to the activity to which the Fragment is attached (in this case it is used as a context) - it displays no dialogs and nothing at all. - pavlofff