2017-10-08 25 views
0

내 앱에서 위젯 버튼을 클릭하여 증가시킬 수있는 카운터를 추적하고 있습니다.클릭하여 홈 화면 위젯의 TextView 업데이트

사용자가 클릭하여 카운터에 추가 한 피드백을 사용자에게주고 싶었습니다. 그래서 위젯 버튼 위에 textView를 추가하려고했습니다. 클릭 한 후 제시된 번호를 업데이트 할 수있는 방법이 있습니까?

내 코드 (현재 ... 카운터의 오래된 값을 보여줍니다) :

for (int appWidgetId : appWidgetIds) { 

    Intent incCounter = new Intent(context, WidgetBroadcastReceiver.class); 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, incCounter, 0); //braodcasting to a counter changing module 

    RemoteViews ButtonCounterView = new RemoteViews(context.getPackageName(), R.layout.home_screen_widget); 
    ButtonCounterView.setOnClickPendingIntent(R.id.widgetCounterButton, pendingIntent); 

    String updatedCounter = String.valueOf(countersMap.getInt(todaysDate.getDate(), 0)); 
    ButtonCounterView.setTextViewText(R.id.widgetCounter, updatedCounter); 

    appWidgetManager.updateAppWidget(appWidgetId, ButtonCounterView); 
} 
+0

업데이트 텍스트 뷰의 내용을 다음 위젯 – nomag

+0

을 업데이트? 어디에 내 코드에서 setTextViewText, 및 setOnClickPendingIntent 추가해야합니까? @nomag –

답변

-1

예, 있습니다. 그런 다음 MyMethod라는를 (

Button btn = (Button) findViewById(R.id.mybutton); 

btn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     myMethod(); 
    } 
}); 

:

<Button android:id="@+id/mybutton" 
    android:text="Click me!" 
    android:onClick="myMethod" /> 

그런 다음 실제 클래스를 그냥 다음을 만듭니다 (는 XML 폴더) 사용자가 클릭이 버튼

추가 및 onClickStatement)는 기본적으로 다음과 같은 작업을 수행합니다.

textView.setText("Enter text that says user has added one to the counter") 
+0

고마워! 홈 화면 위젯과 관련이 있다고 확신합니까? 위젯 클래스는 findViewById를 사용할 수 없기 때문에. 또한 나는 당신이 오직 onClickListener와 setOnClickPendingIntent를 사용할 수 있다고 생각하지만 위젯에는 OnClickListener를 사용할 수 없다. 확실하지는 않다. 어쨌든 확인해 보겠다. –

+0

notifcation과 전혀 관련이 없다. – nomag

+0

제가 도와 주려고했는데, 제가 잘못 본 것 같습니다. 그 친구 한테 미안해. – rpikado

0

내부에서 원격보기 내용을 업데이트해야합니다.다음 아래와 같은 위젯 새로 고침 : 당신이 무엇을 의미합니까

AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(getApplicationContext()); 
ComponentName thisWidget = new ComponentName(getApplication(), YourWidget.class); 
int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget); 
for (int widgetId : allWidgetIds) { 
    appWidgetManager.updateAppWidget(widgetId, remoteViews); 
}