0

FragmentPagerAdapter에 세 페이지가 있고 다른 조각 (pageradapter가 아닌)에서 longClick 이벤트를 catch하고 인터페이스를 통해이 이벤트를 사용하여 변경하려고합니다. 텍스트 뷰 내의 텍스트 MainActivity에서 arraylist에 프래그먼트를 저장하면 어느 정도 작동했지만 arraylist를 제거하고 pragadapter에서 기존 프래그먼트를 가져 와서 arraylist에서 사라진 프래그먼트로 문제를 해결했습니다. 이제 textview가되었습니다. 전혀 변하지 않을 것입니다 (그것은 이전의 일부분을 바꿀 것입니다). 희망이호출기 어댑터 + FragmentPagerAdapter 이벤트에서 TextView 텍스트를 변경할 수 없습니다.

@Override 
    public void onLocationSelected(String location) { 
    setCurrentLocation(location); 
    Fragment frag; 
    for (int i = adapter.getCount() - 1; i >= 0; i--) { 
     frag = adapter.getItem(i); 
     if (frag instanceof LocationChangedListener) { 
     ((LocationChangedListener) frag).onLocationChanged(); 
     } 
    } 
    } 

    private class WeatherAppPagerAdapter extends FragmentPagerAdapter { 

    private String[] titles; 

    public WeatherAppPagerAdapter(FragmentManager fm) { 
     super(fm); 
     titles = getResources().getStringArray(R.array.titles); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     switch (position) { 
     case 0: 
     return new OptionsFrag(); 
     case 1: 
     return new ConditionsFrag(); 
     case 2: 
     return new ForcastFrag(); 
     default: 
     return null; 
     } 
    } 

    @Override 
    public int getCount() { 
     return 3; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return titles[position]; 
    } 

    } 

: 여기

가 관련 부분이다 (다른 어떤 코드를 언급하고 나는 그것을 추가하겠습니다을 이해하기 위해 필요한 경우 Tushar의 요청에 따라 나는 가장 관련성 부품을 가지고) TextView가 텍스트가 절실히 필요하기 때문에 나를 도와줍니다.

편집 : 텍스트 뷰 get 및 텍스트의 wher은 다음과 같습니다

@Override 
public void onLocationChanged() { 
if (view == null) { 
    return; 
} 
((TextView) view.findViewById(R.id.tvLocationName)).setText(mainActivity 
    .getCurrentLocation()); 
} 
+1

코드의 관련 부분 만 게시하십시오. – Tushar

+0

@ Tushar, 가장 관련성이 높은 코드 만 남았습니다. 코드를 이해하는 데 필요한 다른 것이 있으면 알려 주면 추가 할 것입니다. –

+0

정확히 TextView를 설정하고 있습니까? setCurrentLocation에있는 경우 게시하십시오. – Tushar

답변

0

좋아, 내가 찾은 솔루션은 활동의 텍스트를 설정하는 것이 었습니다, 나는 추측보기는 조각에서 액세스 할 수 없습니다. 아무리 노력해도 뷰는 항상 null이었습니다. 그것은 위젯에 다른 id를 부여하는 것을 의미하지만 적어도 작동합니다.

관련 문제