这是我的res / xml / widget.xml
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="5" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-" />
这是我的AppWidgetProvider文件:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// There may be multiple widgets active, so update all of them
for (int appWidgetId : appWidgetIds) {
Intent intent = new Intent(context,MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context,0,intent,0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
views.setOnClickPendingIntent(R.id.button,pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId,views);
// views.setTextViewText(R.id.textView,"2");
updateAppWidget(context, appWidgetManager, appWidgetId);
}
}
按按钮(+)然后,textview添加一个\ textview = 6。按下按钮( - )然后,textview = 4 请帮助我,我需要任何解决方案。
答案 0 :(得分:0)
创建静态整数计数。 private static int count;
在您的活动/片段中添加以下逻辑:
Button buttonPlus = findViewById(R.id.button);
Button buttonMinus = findViewById(R.id.button3);
textView = findViewById(R.id.textView);
if (textView.getText().toString().isEmpty()) {
count = 0;
} else {
count = Integer.valueOf(textView.getText().toString());
}
buttonPlus.setOnClickListener(this);
buttonMinus.setOnClickListener(this);
在您实施的onClick中,添加以下内容:
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.button:
count++;
updateTextView(count);
break;
case R.id.button3:
count--;
updateTextView(count);
break;
}
}
最后创建一个更新textview的方法:
private void updateTextView(int count) {
textView.setText(String.valueOf(count));
}
答案 1 :(得分:0)
您无法直接取消引用 AppWidgetProvider
的观看次数,您必须使用 Remote Views
。
例如: -
private static final String MyOnClick = "Button OnClick";
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.you_widget_layout);
views.setOnClickPendingIntent(R.id.your_button, MyOnClick);
Get You Button点击听众如下: -
@Override
public void onReceive(Context context, Intent intent)
{
if (intent.getAction().equals(MyOnClick)) //Update Here <- <-
{
views.setTextViewText(R.id.your_text_view, "text here");
}
}