업데이트 활동에서 ViewPager의 목록보기에 액세스하는 방법-생성 된 페이지

다리우스 반경

Android 개발자 여러분, 안녕하세요.

이 조각과 PagerAdapter를 시작하는 Activity에서 PagerAdapter를 통해 조각에 만든 탭에 표시된 ListView를 업데이트해야합니다. 하지만 활성 탭에서 특정 목록보기를 얻는 방법을 모르겠습니다.

listview 어댑터를 통해 notifyDataSetChanged에 대해 알고 있지만 활동에서 액세스하는 방법을 모릅니다.

자세한 내용은 다음과 같습니다.

나는 다음과 같은 수업이 있습니다.

public class ChannelsListTabsFragment extends Fragment {

    private SlidingTabLayout mSlidingTabLayout;
    private ViewPager mViewPager;

    private ChannelCountriesModel[] tabTitles;

    private Context applicationContext;

    private String session;

    private long time_offset;

    // Nastaveni listview, když se klikne
    private ListView listViewFragment;

    public static ChannelsListTabsFragment newInstance(String session, ChannelCountriesModel[] tabTitles, long time_offset)
    {
        ChannelsListTabsFragment fragment = new ChannelsListTabsFragment();
        Bundle args = new Bundle();
        args.putParcelableArray("tabTitles", tabTitles);
        args.putString("session", session);
        args.putLong("time_offset", time_offset);
        fragment.setArguments(args);
        return fragment;
    }

    public ChannelsListTabsFragment()
    {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        View rootView = inflater.inflate(R.layout.fragment_tabbet, container, false);
        System.out.println("onCreateView");
        applicationContext = getActivity().getApplicationContext();
        tabTitles = (ChannelCountriesModel[]) getArguments().getParcelableArray("tabTitles");
        session = getArguments().getString("session");
        time_offset = getArguments().getLong("time_offset");

        return inflater.inflate(R.layout.channels_list_tabs_fragment, container, false);
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState)
    {
        mViewPager = (ViewPager) view.findViewById(R.id.viewpager);
        mViewPager.setAdapter(new ListChannelsPagerAdapter(session, tabTitles));

        mSlidingTabLayout = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs);

        mSlidingTabLayout.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
            @Override
            public int getIndicatorColor(int position) {
                return getResources().getColor(R.color.myred);
            }

            @Override
            public int getDividerColor(int position) {
                return getResources().getColor(R.color.myred);
            }
        });

        mSlidingTabLayout.setViewPager(mViewPager);
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        if (v.getId()==R.id.channelList) {
            AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
            Object o = listViewFragment.getItemAtPosition(info.position);
            Channel_Model channelModel = (Channel_Model) o;
            menu.setHeaderTitle(channelModel.getCh_Name());
            String[] menuItems = getResources().getStringArray(R.array.menu);
            for (int i = 0; i<menuItems.length; i++) {
                menu.add(Menu.NONE, i, i, menuItems[i]);
            }
        }
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {

        if (getUserVisibleHint()) {
            // Something with it...
            }
            return true;
        }
        return false;
    }


    class ListChannelsPagerAdapter extends PagerAdapter
    {
        private ChannelCountriesModel[] tabTitles;
        private String session;

        public ListChannelsPagerAdapter(String session, ChannelCountriesModel[] tabTitles)
        {
            this.tabTitles = tabTitles;
            this.session = session;
        }

        @Override
        public int getCount() {
            try {
                return tabTitles.length;
            }
            catch (Exception e)
            {
                //e.printStackTrace();
                return 0;
            }
        }

        @Override
        public boolean isViewFromObject(View view, Object o) {
            return o == view;
        }

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

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            // Inflate a new layout from our resources
            View rootView = getActivity().getLayoutInflater().inflate(R.layout.channels_list_tabs_pager_item, container, false);

            container.addView(rootView);

            ListView lv1;

            lv1 = (ListView) rootView.findViewById(R.id.channelList);
            lv1.requestFocus(); // Here is plan to fill listview

            return rootView;
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);

        }

    }

}

조각은 다음과 같은 활동에서 시작됩니다.

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
            ChannelsListTabsFragment fragment = ChannelsListTabsFragment.newInstance(session, channelCountries, time_offset);
            transaction.replace(R.id.channels_list_tabs_fragment, fragment);
            transaction.commit();

조언을 해주셔서 대단히 감사합니다.

유진 H

활동에서 어댑터를 알리는 방법은 다음과 같습니다.

조각이 생성되는 한 원하는 곳에서이 문을 호출 할 수 있습니다.

if (channelsListTabsFragment != null) {
    channelsListTabsFragment.updateAdapter();
}

활동 클래스

public class MainActivityTesting extends AppCompatActivity {
    ChannelsListTabsFragment channelsListTabsFragment;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_activity_testing);
        Fragment fragment = new ChannelsListTabsFragment();
        this.getSupportFragmentManager().beginTransaction().replace(R.id.container, fragment).commit();
        channelsListTabsFragment = (ChannelsListTabsFragment) fragment;
    }

    public void onEvent(GetChannelsEvent event) {
        channelsCountriesMap = event.getGetChannelsEvent();
        // Update fragment adapter within the onEvent. 
        if (channelsListTabsFragment != null) {
            channelsListTabsFragment.updateAdapter();
        }
    }
}

파편

public class ChannelsListTabsFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_layout, container, false);
        return v;
    }

    // Here your adapter will be updated
    // It is being called from the Activity 
    public void updateAdapter() {
        if (channel_Row_Adapter != null) {
            channel_Row_Adapter.notifyDataSetChanged();
        }
    }
}

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Tkinter에서 목록 용으로 생성 된 버튼의 텍스트를 업데이트하는 방법

분류에서Dev

Android : 활동에서 액세스하여 다른 활동의 개인 변수를 업데이트하는 방법

분류에서Dev

업데이트 된 값에 액세스하는 방법

분류에서Dev

다른 활동에서 돌아온 후 탭 활동에서 목록보기를 업데이트하는 방법

분류에서Dev

Android-활동에 포함 된 프래그먼트에서 활동보기를 업데이트하는 방법

분류에서Dev

컨트롤러에서 생성 된 뷰에서 레일의 데이터에 액세스하는 방법은 무엇입니까?

분류에서Dev

OpenXML SDK를 사용하여 생성 된 DOCX의 목차에 대한 페이지 번호 자동 업데이트

분류에서Dev

Vuex는 컴포넌트 마운트 또는 생성 된 후크의 상태 데이터에 액세스하는 방법은 무엇입니까?

분류에서Dev

C #의 경우 모든 폴더에서 생성 된 네임 스페이스를 코드 숨김으로 액세스하는 방법

분류에서Dev

파생 생성자의 멤버 초기화 목록에서 상속 된 보호 필드에 액세스 할 수없는 이유는 무엇입니까?

분류에서Dev

자체 스레드의 목록보기에서 이미지를 업데이트하는 전문적인 방법

분류에서Dev

동적으로로드 된 페이지의 요소에 액세스하는 방법

분류에서Dev

Fiddler 자동 응답이 활성화 된 상태에서 보안 웹 사이트에 액세스하는 방법은 무엇입니까?

분류에서Dev

el을 사용하여 jsp의 객체에 목록이 저장된 목록에 저장된 객체의 속성에 액세스하는 방법

분류에서Dev

다른 부분보기에서 값을 업데이트하는 동적으로 생성 된 목록이있는 부분보기가있는 ajax 양식

분류에서Dev

매니페스트에 선언 된 구성 요소 (broadcastreceiver)의 인스턴스에 액세스하는 방법

분류에서Dev

객체가 스프레드 표기법에서 액세스 될 때 Javascript 객체의 이름별로 중첩 된 속성에 액세스하는 방법 ...?

분류에서Dev

foreach를 사용하지 않고 동적으로 업데이트 된 녹아웃 observableArray의 특정 요소에 액세스하는 방법

분류에서Dev

기본 사용자 지정 후크가 지정된 구성 요소 인터페이스로 React 라우터 기록 객체에 액세스하는 방법

분류에서Dev

데이터 세트의 값에 액세스하는 방법 (Matlab)

분류에서Dev

instantiateItem의 비동기 작업이있는 PagerAdapter-Viewpager는 마지막으로 생성 된 페이지에서 제품을로드합니다.

분류에서Dev

목록보기 항목을 RequestBin http 페이지에 바인딩하고 업데이트하는 방법

분류에서Dev

웹 페이지에 포함 된 PDF 파일에 액세스하는 방법

분류에서Dev

동적으로 생성 된 페이지의 URL을 다시 작성하는 방법에 대한 개요?

분류에서Dev

활동에서 어댑터의 텍스트보기를 업데이트하는 방법

분류에서Dev

클래스의 인스턴스를 생성자 내의 속성에 전달하고 해당 속성이 초기화 된 속성에 액세스하도록하는 방법은 무엇입니까?

분류에서Dev

GridView의 Tag 속성에 저장된 개체 데이터에 액세스하는 방법은 무엇입니까?

분류에서Dev

Scaffold-DbContext에서 생성 된 기존 모델 클래스를 업데이트하는 방법

분류에서Dev

이번 달의 다음 3 개월 동안 목록보기에 예정된 금액을 표시하는 방법

Related 관련 기사

  1. 1

    Tkinter에서 목록 용으로 생성 된 버튼의 텍스트를 업데이트하는 방법

  2. 2

    Android : 활동에서 액세스하여 다른 활동의 개인 변수를 업데이트하는 방법

  3. 3

    업데이트 된 값에 액세스하는 방법

  4. 4

    다른 활동에서 돌아온 후 탭 활동에서 목록보기를 업데이트하는 방법

  5. 5

    Android-활동에 포함 된 프래그먼트에서 활동보기를 업데이트하는 방법

  6. 6

    컨트롤러에서 생성 된 뷰에서 레일의 데이터에 액세스하는 방법은 무엇입니까?

  7. 7

    OpenXML SDK를 사용하여 생성 된 DOCX의 목차에 대한 페이지 번호 자동 업데이트

  8. 8

    Vuex는 컴포넌트 마운트 또는 생성 된 후크의 상태 데이터에 액세스하는 방법은 무엇입니까?

  9. 9

    C #의 경우 모든 폴더에서 생성 된 네임 스페이스를 코드 숨김으로 액세스하는 방법

  10. 10

    파생 생성자의 멤버 초기화 목록에서 상속 된 보호 필드에 액세스 할 수없는 이유는 무엇입니까?

  11. 11

    자체 스레드의 목록보기에서 이미지를 업데이트하는 전문적인 방법

  12. 12

    동적으로로드 된 페이지의 요소에 액세스하는 방법

  13. 13

    Fiddler 자동 응답이 활성화 된 상태에서 보안 웹 사이트에 액세스하는 방법은 무엇입니까?

  14. 14

    el을 사용하여 jsp의 객체에 목록이 저장된 목록에 저장된 객체의 속성에 액세스하는 방법

  15. 15

    다른 부분보기에서 값을 업데이트하는 동적으로 생성 된 목록이있는 부분보기가있는 ajax 양식

  16. 16

    매니페스트에 선언 된 구성 요소 (broadcastreceiver)의 인스턴스에 액세스하는 방법

  17. 17

    객체가 스프레드 표기법에서 액세스 될 때 Javascript 객체의 이름별로 중첩 된 속성에 액세스하는 방법 ...?

  18. 18

    foreach를 사용하지 않고 동적으로 업데이트 된 녹아웃 observableArray의 특정 요소에 액세스하는 방법

  19. 19

    기본 사용자 지정 후크가 지정된 구성 요소 인터페이스로 React 라우터 기록 객체에 액세스하는 방법

  20. 20

    데이터 세트의 값에 액세스하는 방법 (Matlab)

  21. 21

    instantiateItem의 비동기 작업이있는 PagerAdapter-Viewpager는 마지막으로 생성 된 페이지에서 제품을로드합니다.

  22. 22

    목록보기 항목을 RequestBin http 페이지에 바인딩하고 업데이트하는 방법

  23. 23

    웹 페이지에 포함 된 PDF 파일에 액세스하는 방법

  24. 24

    동적으로 생성 된 페이지의 URL을 다시 작성하는 방법에 대한 개요?

  25. 25

    활동에서 어댑터의 텍스트보기를 업데이트하는 방법

  26. 26

    클래스의 인스턴스를 생성자 내의 속성에 전달하고 해당 속성이 초기화 된 속성에 액세스하도록하는 방법은 무엇입니까?

  27. 27

    GridView의 Tag 속성에 저장된 개체 데이터에 액세스하는 방법은 무엇입니까?

  28. 28

    Scaffold-DbContext에서 생성 된 기존 모델 클래스를 업데이트하는 방법

  29. 29

    이번 달의 다음 3 개월 동안 목록보기에 예정된 금액을 표시하는 방법

뜨겁다태그

보관