Просмотр слайдов с использованием фрагментов

#android #android-fragments #slider #fragment

#Android #android-фрагменты #слайдер #фрагмент

Вопрос:

Я разрабатываю приложение, в котором используется таблица, внутри которой отображаются 4 вкладки, которые являются фрагментом.На одной из моих вкладок я использую панель слайдов, в которой я показываю список из 4 вариантов, и теперь я застрял в его событии щелчка. я хочу открыть новый макет по щелчку listview.Много искал, но не получил ни одного кода, связанного с фрагментами. Пожалуйста, помогите мне.Спасибо за вашу помощь

 NewChattFragment:

public class NewChatFragment extends Fragment

{

    private DrawerLayout drawerLayout; 

    private View drawerView;

    private ListView listView1;

    private ArrayList<drawer> arrayProvider;

    private drawerAdapter adapter;


   @Override

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

   @SuppressLint("NewApi") @Override

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

    View v = inflater.inflate(R.layout.newchatfragment_layout, container, false);

    arrayProvider = new ArrayList<drawer>();
    arrayProvider.add(new drawer("1-to-1"));
    arrayProvider.add(new drawer("Group"));
    arrayProvider.add(new drawer("Video Call"));
    arrayProvider.add(new drawer("Broadcast"));
    arrayProvider.add(new drawer("Blink"));

    listView1 = (ListView) v.findViewById(R.id.left_drawer);

    adapter = new drawerAdapter(getActivity(), arrayProvider);

     listView1.setAdapter(adapter);

     drawerLayout = (DrawerLayout) v.findViewById(R.id.drawer_layout);

     drawerView = (View)v.findViewById(R.id.drawer);

     drawerLayout.openDrawer(drawerView);

    return v;
    }
}
  

Ответ №1:

Пожалуйста, обратитесь к этому классу для создания списка навигации и получения его списка, надеюсь, это будет вам полезно,

     public class NavigationListFragment extends ListFragment {

    private static final String TAG = NavigationListFragment.class.getName();

    MenuAdapter menuAdapter;

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        return inflater.inflate(R.layout.navigation_list, null);
    }

    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        menuAdapter = new MenuAdapter(getActivity());

        menuAdapter.add(new MenuItem("1-to-1", R.drawable.search_icon_select));
        menuAdapter.add(new MenuItem("Group", R.drawable.cuse_icon));
        menuAdapter.add(new MenuItem("Video Call", R.drawable.cart_icon));
        menuAdapter.add(new MenuItem("Broadcast", R.drawable.post_icon));
        menuAdapter.add(new MenuItem("Blink", R.drawable.settting_icon));

        getListView()
                .setDivider(new ColorDrawable(Color.parseColor("#FFFFFF")));
        getListView().setDividerHeight(1);

        setListAdapter(menuAdapter);
    }

    private class MenuItem {
        public String tag;
        public int iconRes;

        public MenuItem(String tag, int iconRes) {
            this.tag = tag;
            this.iconRes = iconRes;
        }
    }

    public class MenuAdapter extends ArrayAdapter<MenuItem> {

        public MenuAdapter(Context context) {
            super(context, 0);
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            if (convertView == null) {
                convertView = LayoutInflater.from(getContext()).inflate(
                        R.layout.cell_navigation, null);
            }
            ImageView icon = (ImageView) convertView
                    .findViewById(R.id.row_icon);
            icon.setImageResource(getItem(position).iconRes);
            TextView title = (TextView) convertView
                    .findViewById(R.id.row_title);
            title.setText(getItem(position).tag);

            return convertView;
        }
    }

    @Override
    public void onListItemClick(ListView lv, View v, int position, long id) {
        switch (position) {
        case 0:
            //click event for 1-to-1
            break;

        case 1:
            //click event for Group
            break;

        case 2:
            //click event for Video Call
            break;

        case 3:
            //click event for Broadcast
            break;

        case 4:
            //click event for Blink
            break;
        }
    }
}
  

Комментарии:

1. я использую Fragmentactivity, внутри которого я использую эти 4 вкладки, которые являются фрагментами. если я использую ListFragment, он выполняет приведение nt правильно.

2. идея состоит в том, чтобы использовать пользовательский адаптер так, как в моем коде, а не в классе.