2013-07-20 4 views
0

안녕하세요, 먼저 나쁜 영어로 유감입니다. RemoteViews .setViewVisibility를 설정하는 방법? 위젯 버튼을 클릭하면 그것을 숨기고 싶습니다. 내 코드는 다음과 같습니다. 도와 주셔서 감사합니다.위젯 버튼 표시 설정 방법?

@Override 
public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
     int[] appWidgetIds) { 

    final int N = appWidgetIds.length; 
    for (int i = 0; i < N; i++){ 

     int appId = appWidgetIds[i]; 
     widget = new RemoteViews(context.getPackageName(), R.layout.widget_wyglad); 
     Intent Tv = new Intent(context, client_widget.class); 
     Tv.setAction(AKCJA); 
     Tv.putExtra("test", AKCJA); 
     PendingIntent ptv = PendingIntent.getBroadcast(context, 0, Tv, 0); 
     widget.setOnClickPendingIntent(R.id.bt_wid_tv, ptv); 
     appWidgetManager.updateAppWidget(appId, widget); 
    } 

    super.onUpdate(context, appWidgetManager, appWidgetIds); 
} 

@Override 
public void onReceive(Context context, Intent intent) { 

    Bundle extras = intent.getExtras(); 
    if (extras != null){ 

     widget.setViewVisibility(R.id.bt_wid_tv, View.GONE); 

    } 
    else {Log.d("ERR", "EXTRAS ELSE");} 

    super.onReceive(context, intent); 

} 

} 

답변

0

보기를 숨김으로 설정하는 모든 작업을 완료했습니다. 단지

if (intent.getAction().equals(AKCJA)) { 
widget.setViewVisibility(R.id.bt_wid_tv, View.GONE); 
} 
+0

나는 두 솔루션 및 아무것도 무슨 일이 생긴보십시오. widget.setViewVisibility (R.id.bt_wid_tv, View.GONE) 뷰는 항상 이것을 사용 변경 – Gillven

+0

yes..exactly..after이 코드 - appWidgetManager.updateAppWidget (APPID, 위젯) : 난 후 업데이트 위젯을 시도해야 ; – Naddy

-1

당신이 INVISIBLE 대신 GONE를 사용하여 시도 가지고 당신의 onReceive 방법 -에서

당신의 코드 -

이 포함되어 있습니까? 사라지면보기가 사라지는 것처럼 보입니다. 그리고 보이지 않는 것은 레이아웃에서 뷰의 위치를 ​​유지하지만 보이지 않게합니다.

int appId = appWidgetIds[i]; 

변화 :

appId = appWidgetIds[i]; 

내가 추가 다음 정적 INT APPID :

rv.setViewVisibility(R.id.bt_wid_tv, View. INVISIBLE); 
-2

그래 마침내 내가 변경 어떤있다, 일을 마지막으로

public class client_widget extends AppWidgetProvider { 

static int appId; 

이 새로운 A를 추가하십시오. ppWidgetManager 및 업데이트 라인 :

public void onReceive(Context context, Intent intent) { 

AppWidgetManager newAppWidgetManager = AppWidgetManager.getInstance(context); 

     if (intent.getAction().equals(AKCJA)) { 
      AppWidgetManager nowy = AppWidgetManager.getInstance(context); 

      widget.setViewVisibility(R.id.bt_wid_tv, View.GONE); 

      newAppWidgetManager.updateAppWidget(appId, widget); 

감사 @Naddy