0

호환성 팩의 ViewPager를 페이지 조각으로 사용합니다. 파편에 데이터를 제공하는 백그라운드 서비스가 필요합니다. 따라서 I 그러한 프래그먼트 (예) 텍스트 뷰를 갱신하는 "정상 자바 클래스를"사용ViewPager에서 일반 자바 클래스로 Textview 업데이트

public class Updater { 

private Activity mActivity=null; 
private TextView tv = null; 
private Context mContext; 
private View mInflatedMenu =null; 

public Updater (Activity _activity, Context _context, View inflatedMenu) { 
    mActivity = _activity; 
    mContext = _context; 
    mInflatedMenu = inflatedMenu; 
} 

public void updateTextView (String _text) { 
    tv = (TextView) mInflatedMenu.findViewById(R.id.tvFragment1Updater); 
    tv.setText(_text); 
    Toast.makeText(mContext, tv.getText(), Toast.LENGTH_SHORT).show(); 
}  

} 

축배 말한다를 상기 텍스트 뷰 매개 변수 _text의 값을 가지고있다. 괜찮아!
문제 : 화면에서 TextView의 원래 값이 _text으로 변경되지 않았습니다.

나는 모든 종류의 invalidate()을 시도했다고 생각합니다. 내가 뭘 잘못하고있어? ViewPager에서 조각 "보기"를 어떻게 업데이트 하시겠습니까?

답변

0

_text의 값을 변경할 때 토스트 인스턴스를 저장해야하며 이전 토스트를 숨기고 새 토스트를 만들지 않아야합니다.

+0

답변 해 주셔서 감사합니다. 나는 나의 질문이 정말로 분명하지 않았다고 생각한다. 토스트 인스턴스는 "내부적으로"값이 변경되었지만 뷰에서 새로 고쳐지지 않은 값인지 확인하는 "돕는 기능"일뿐입니다. 다시는 나를 도울 수 있을까? – Andrew

+0

setText()는 어떤 종류의 무효화도 필요로하지 않으며, 문제는 그 밖의 다른 장소이며, 값을 다른 것으로 변경하지 않고, 현재 보여지고있는 뷰임을 확인하려고합니다 –