1
나는 내 모든 응용 프로그램을 통해 사용 HeaderView라는 클래스했다
: 내 활동에안드로이드 - GUI onResume를 업데이트하지
public HeaderView(Context context, AttributeSet attrs) {
super(context, attrs);
ctx = context;
commonApi = AAALifestyleApplication.commonApi;
user = commonApi.getCurrentUser();
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.header_view, this, true);
((ImageView)this.findViewById(R.id.logo)).setOnClickListener(this);
inboxButton = (ImageView) this.findViewById(R.id.inbox_image);
inboxButton.setOnClickListener(this);
inboxButton2 = (ImageView) this.findViewById(R.id.inbox_image2);
inboxButton2.setOnClickListener(this);
requestsButton = (ImageView) this.findViewById(R.id.requests_image);
requestsButton.setOnClickListener(this);
requestsButton2 = (ImageView) this.findViewById(R.id.requests_image2);
requestsButton2.setOnClickListener(this);
progressBar = (ProgressBar) this.findViewById(R.id.header_progress_bar);
if (!showProgressBar) {
progressBar.setVisibility(INVISIBLE);
}
AAAAsyncTask.setProgressBarListener(this);
refreshView();
}
public static void refreshView(){
SharedPreferences sp = ctx.getSharedPreferences("HeaderView", Context.MODE_PRIVATE);
int newMessages = sp.getInt("newMessagesCount", 0);
int newRequests = sp.getInt("newRequestsCount", 0);
if(newMessages > 0){
Log.d("daim", "new messages!");
inboxButton.setVisibility(View.GONE);
inboxButton2.setVisibility(View.VISIBLE);
}
else{
Log.d("daim", "no new messages!");
inboxButton.setVisibility(View.VISIBLE);
inboxButton2.setVisibility(View.GONE);
}
if(newRequests > 0){
requestsButton.setVisibility(View.GONE);
requestsButton2.setVisibility(View.VISIBLE);
}
else{
requestsButton.setVisibility(View.VISIBLE);
requestsButton2.setVisibility(View.GONE);
}
}
가이 HeaderView이 그것 XML에 지정된, 또한 onResume에서 원인에서 OnCreate 호출되는()이 같은 다음에서 onCreate() 메소드이 제대로 작동하지만에서
@Override
public void onResume(){
super.onResume();
HeaderView.refreshView();
}
onResume() 나는 메시지의 적당한 양을 얻고 심지어이 기록, 그래서 그 "아니오 새 메시지"확실히 알 인쇄되어 있지만 setVisibility() 메서드는 전혀 업데이트되지 않으며 대신 이전의 Im이 표시됩니다. ageView 내가 "새 메시지"를 보았을 때.
제발, 내가 그 문제가 있는지 확인하기 위해 스레드와 함께 처리기를 사용하여 시도했지만 여전히 이런 식으로 남아 있습니다.
HeaderView (컨텍스트 컨텍스트, AttributeSet attrs) : 할 수 없어 headerView = new HeaderView (this)? – Carnal
HeaderView (컨텍스트)도 구현하고 단계를 수행했지만 여전히 작동하지 않습니다! – Carnal
컨텍스트 만있는 두 번째 생성자를 만드십시오. "마우스 오른쪽 버튼 - 소스 - 수퍼 클래스에서 생성자 생성"을 통해 생성자를 자동 생성하는 경우 Eclipse는 가능한 모든 생성자 (필요한) 생성자를 자동으로 생성합니다. – Thommy