ViewPager의 조각에서 어댑터 호출

young_08

searchview와 viewpager가있는 Fragment가 있습니다. 내 뷰 페이지에는 3 개의 조각과 각 조각이 어댑터를 호출합니다. 이제 searchview를 구현하려면 view pager에서 보이는 조각의 어댑터를 호출해야합니다.

SlidingTab (searchview 및 ViewPager가있는 조각) :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/frame_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.RareMediaCompany.BDTrial.SlidingTab">

    <include
        android:id="@+id/toolbar1"
        layout="@layout/toolbar_job" />

    <com.RareMediaCompany.BDTrial.Utils.CustomTabLayout
        android:id="@+id/sliding_tabs"
        style="@style/CustomTabLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#eeeeee"
        app:tabIndicatorColor="#f39220"
        app:tabIndicatorHeight="3dp"
        app:tabMaxWidth="0dp"
        app:tabMode="fixed"
        app:tabPaddingEnd="0dp"
        app:tabPaddingStart="0dp"
        app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget"
        app:tabSelectedTextColor="#808080" />

    <LinearLayout
        android:id="@+id/linear1"
        android:background="@android:color/white"
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:orientation="horizontal"
        android:weightSum="1">

        <android.support.v7.widget.SearchView
        android:layout_width="300dp"
        android:layout_height="45dp"
        android:id="@+id/searchView"
        android:layout_weight="0.9"
        android:layout_marginRight="5dp"
        android:layout_gravity="center"
        style="@style/CitySearchView"
        android:background="@drawable/searchview"
        android:layout_marginLeft="10dp"/>

        <LinearLayout
            android:id="@+id/list_linearlayout"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_weight="0"
            android:layout_gravity="center"
            android:background="#f39220">
            <ImageView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:layout_weight="0.3"
                android:src="@drawable/list_icon_white"/>

        </LinearLayout>

        <LinearLayout
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_gravity="center"
            android:layout_weight="0"
            android:layout_marginRight="10dp"
            android:background="#75aadb">
            <ImageView
                android:layout_width="20dp"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:layout_marginRight="2dp"
                android:layout_weight="0.3"
                android:src="@drawable/mapmarker"/>

        </LinearLayout>


    </LinearLayout>
        <!--android:layout_width="320dp"-->
        <!--android:layout_height="wrap_content"-->
        <!--android:layout_marginLeft="10dp"-->
        <!--android:layout_marginTop="10dp"-->
        <!--android:id="@+id/searchview"/>-->

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="@android:color/white" />

</LinearLayout>

SlidingTab.class (SearchView 구현)

public class SlidingTab extends Fragment {
    private static final String TAG = "TabLayout";
    private static String POSITION = "POSITION";
    private Context context;
    private SearchView searchview;
    private Toolbar toolbar ;


    /*searching/filteration query*/
    private SearchView.OnQueryTextListener OnQuerySearchView = new SearchView.OnQueryTextListener() {

        @Override
        public boolean onQueryTextSubmit(String arg0) {
            // TODO Auto-generated method stub
            return false;
        }

        @Override
        public boolean onQueryTextChange(String arg0) {
            // TODO Auto-generated method stub
//            if (searchCheck) {
            Log.i("Recycler query", arg0);

//            Fragment frag = new PageAdapter(getChildFragmentManager(),context).getItem(viewPager.getCurrentItem());
            PageAdapter adapter = ((PageAdapter) viewPager.getAdapter());
            Fragment fragment = adapter.getFragment(viewPager.getCurrentItem());
            return false;
        }
    };

    public SlidingTab() {
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.sliding_tab, container, false);
         viewPager = (ViewPager) v.findViewById(R.id.view_pager);
        viewPager.setOffscreenPageLimit(2);
        viewPager.setAdapter(new PageAdapter(getChildFragmentManager(), context));
        slidingTab = (TabLayout) v.findViewById(R.id.sliding_tabs);
        searchview = (SearchView)v.findViewById(R.id.searchView);
        searchview.setOnQueryTextListener(OnQuerySearchView);
        return v;
    }

PageAdapter.class

public class PageAdapter extends FragmentStatePagerAdapter {
    private static final String TAG = "PageAdapter";
    final int PAGE_COUNT = 3;
    private String tabTitles[] = new String[]{"New", "In Progress", "Completed"};
    private Context context;

    public PageAdapter(FragmentManager fm, Context context) {
        super(fm);
        this.context = context;
    }


    @Override
    public Fragment getItem(int position) {
        Log.d(TAG, "New Instance Created :" + position);
        switch (position) {
            case 0:
                return new JobFragment();

            case 1:
                return new InProgressJobFragment();
            case 2:
                return new CompletedJobFragment();
        }
        return null;
    }


    @Override
    public CharSequence getPageTitle(int position) {
        return tabTitles[position];
    }
    @Override
    public int getCount() {
        return PAGE_COUNT;
    }


}

Fragment RecyclerView 어댑터 (뷰 페이저의 각 조각별로 호출하고 searchview 필터 메서드가 있음)

public class JobAdapter extends RecyclerView.Adapter<JobAdapter.ViewHolder> {
    private static final String TAG = "EMPLOYEE ADAPTER";
    private static final int VIEW_NORMAL = 0;
    private ArrayList<Info> mDataset;
    private ArrayList<Info> filterList;
    private Context mAct;

    public class ViewHolder extends RecyclerView.ViewHolder {

        }
    }

    public void addApplications(ArrayList<Info> candidates) {
      }

    public void clearApplications() {
     }

    public JobAdapter(ArrayList<Info> myDataset, Context context) {
        this.mDataset = myDataset;
        this.mAct = context;
    }



    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.job_card_new, parent, false);
        ViewHolder fh = new ViewHolder(v);
        return fh;
    }

    @Override
    public void onBindViewHolder(final ViewHolder holder, final int position) {

//      }



**//    *searching/filtration on List*/**
    public void filter(String charText) {
        filterList.clear();
        if (charText.length() == 0) {
            if(mDataset != null) {
                filterList.addAll(mDataset);
            }
        } else {
            if (mDataset != null){
                for (Info wp : mDataset) {
                    if(wp.jobNumber !=null){
                        if(Pattern.compile(Pattern.quote(charText), Pattern.CASE_INSENSITIVE).matcher(wp.jobNumber).find()){
//                    if (wp.heading1.toLowerCase().contains(charText.toLowerCase())) {
                            filterList.add(wp);
                        }}else{

                    }

                    this.notifyItemRangeRemoved(0, filterList.size());

                }
            }
        }
        notifyDataSetChanged();
    }


    @Override
    public int getItemCount() {
        return mDataset.size();
    }
}

viewpager에서 searchview를 구현할 때 도와주세요.

Giteeka Sawlani

업로드 된 코드의 도움으로

검색 및 호출 어댑터 필터 메서드라는 조각에 메서드를 만듭니다.

public void search(String text)
{
adapter.filter(text)
}

조각의 인스턴스를 확인하고이 줄 뒤에 조각의 검색 방법을 호출 할 수 있습니다.

 Fragment fragment = adapter.getFragment(viewPager.getCurrentItem());

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

어댑터의 조각에서 요소 호출

분류에서Dev

Android : viewPager의 Fragment에서 ListView의 어댑터에 대한 getview () 호출

분류에서Dev

어댑터에서 조각을 호출하는 방법

분류에서Dev

조각에서 조각으로 메서드 호출 (어댑터 새로 고침)

분류에서Dev

어댑터의 활동에서 메소드 호출

분류에서Dev

어댑터 클래스 내부의 호출 메서드

분류에서Dev

조각에서 어댑터 메서드를 호출하지 못했습니다.

분류에서Dev

ViewHolder (RecyclerView)에서 어댑터의 메서드를 호출 할 수 없습니다.

분류에서Dev

IBM Mobilefirst : server / java 폴더 아래의 Java 파일에서 어댑터 호출

분류에서Dev

활동에서 ListView 어댑터의 getItem (i)을 호출하는 방법

분류에서Dev

Viewpager 다시로드 어댑터의 강제 조각

분류에서Dev

조각 내에서 ViewPager 호출

분류에서Dev

조각의 ViewPager에있는 Listview 어댑터-활동을 가져 오는 방법

분류에서Dev

다른 어댑터에서 작업 등 어댑터를 호출하는 방법

분류에서Dev

MobileFirst Platform 7.0의 JS 어댑터 프로 시저에서 Java 어댑터 프로 시저를 호출하는 방법은 무엇입니까?

분류에서Dev

GridView의 어댑터에서 잘못된 요소 번호

분류에서Dev

다른 탭 조각의 Android ViewPager 업데이트 목록 어댑터

분류에서Dev

다른 탭 조각의 Android ViewPager 업데이트 목록 어댑터

분류에서Dev

Android-조각의 어댑터 문제

분류에서Dev

Android의 조각에서 활동 호출

분류에서Dev

어댑터, Android 앱 개발에서 Fragment의 함수를 호출 할 수 없습니다.

분류에서Dev

사용자 정의 어댑터에서 getView ()를 호출하지 않았습니다.

분류에서Dev

사용자 지정 어댑터를 사용하여 보이지 않는 캐시 된 조각에서 ViewPager / Tab 구현의 조각 다시로드 / 새로 고침

분류에서Dev

어댑터 클래스에서 Fragment 메서드 호출

분류에서Dev

다른 조각 / 활동에서 조각의 메서드 호출

분류에서Dev

호출기 어댑터의 조각이 매우 느리게로드 됨 (데이터로드보다 몇 초 지연됨)

분류에서Dev

Android listView 어댑터에 API 호출이 있어야합니까?

분류에서Dev

RecyclerView 어댑터 (DataBinding)에서 startActivity를 호출하는 방법

분류에서Dev

활동을 호출하지 않는 Android 어댑터의 getView ()

Related 관련 기사

  1. 1

    어댑터의 조각에서 요소 호출

  2. 2

    Android : viewPager의 Fragment에서 ListView의 어댑터에 대한 getview () 호출

  3. 3

    어댑터에서 조각을 호출하는 방법

  4. 4

    조각에서 조각으로 메서드 호출 (어댑터 새로 고침)

  5. 5

    어댑터의 활동에서 메소드 호출

  6. 6

    어댑터 클래스 내부의 호출 메서드

  7. 7

    조각에서 어댑터 메서드를 호출하지 못했습니다.

  8. 8

    ViewHolder (RecyclerView)에서 어댑터의 메서드를 호출 할 수 없습니다.

  9. 9

    IBM Mobilefirst : server / java 폴더 아래의 Java 파일에서 어댑터 호출

  10. 10

    활동에서 ListView 어댑터의 getItem (i)을 호출하는 방법

  11. 11

    Viewpager 다시로드 어댑터의 강제 조각

  12. 12

    조각 내에서 ViewPager 호출

  13. 13

    조각의 ViewPager에있는 Listview 어댑터-활동을 가져 오는 방법

  14. 14

    다른 어댑터에서 작업 등 어댑터를 호출하는 방법

  15. 15

    MobileFirst Platform 7.0의 JS 어댑터 프로 시저에서 Java 어댑터 프로 시저를 호출하는 방법은 무엇입니까?

  16. 16

    GridView의 어댑터에서 잘못된 요소 번호

  17. 17

    다른 탭 조각의 Android ViewPager 업데이트 목록 어댑터

  18. 18

    다른 탭 조각의 Android ViewPager 업데이트 목록 어댑터

  19. 19

    Android-조각의 어댑터 문제

  20. 20

    Android의 조각에서 활동 호출

  21. 21

    어댑터, Android 앱 개발에서 Fragment의 함수를 호출 할 수 없습니다.

  22. 22

    사용자 정의 어댑터에서 getView ()를 호출하지 않았습니다.

  23. 23

    사용자 지정 어댑터를 사용하여 보이지 않는 캐시 된 조각에서 ViewPager / Tab 구현의 조각 다시로드 / 새로 고침

  24. 24

    어댑터 클래스에서 Fragment 메서드 호출

  25. 25

    다른 조각 / 활동에서 조각의 메서드 호출

  26. 26

    호출기 어댑터의 조각이 매우 느리게로드 됨 (데이터로드보다 몇 초 지연됨)

  27. 27

    Android listView 어댑터에 API 호출이 있어야합니까?

  28. 28

    RecyclerView 어댑터 (DataBinding)에서 startActivity를 호출하는 방법

  29. 29

    활동을 호출하지 않는 Android 어댑터의 getView ()

뜨겁다태그

보관