我想在单击 AppWidgetProvider
中的小部件按钮时从 MainActivity
调用特定方法。我已经设置了其中只有一个按钮的布局,并且已经创建了 widget.xml
。我的问题是,当我单击要从我的 MainActivity
中调用方法的按钮时,没有任何反应。
这是我的 AppWidgetProvider 类
public class NewAppWidget extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
updateAppWidget(context, appWidgetManager, appWidgetIds[i]);
}
}
@Override
public void onEnabled(Context context) {
}
@Override
public void onDisabled(Context context) {
}
static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
int appWidgetId) {
CharSequence widgetText = context.getString(R.string.appwidget_text_balance);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
}
}
这是我的 MainActivity.class
public class MainActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void makeText(String message){
Toast.makeText(this,message,Toast.LENGHT_SHORT).show();
}
public void calculateData(){
//Something in here
}
}
这是我的 AndroidManifest.xml
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!--declare new widget-->
<receiver android:name=".NewAppWidget" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/new_app_widget_info" />
</receiver>
最佳答案
基本上您要求的是在 2 个类之间共享一个方法,对吗?
这有很多方法,就像共享任何其他数据一样。
使用一个可以全局访问的类:
即 -
public class GlobalMethods{
public static void calculateData(){
....
}
}
并从您的其他类文件中访问它:
GlobalMethods.calculateData(...);
我猜您想从您的 mainActivity 中调用 calculateData()
,因为您可能想编辑该类中的数据。
如果是这种情况,也许您应该考虑使用接口(interface)或单例在 Activity/类之间共享数据。
看一些例子here关于这是如何完成的。
并非所有示例都适用于您的情况,但您应该从中获得一些想法。
关于java - 单击小部件按钮时从 MainActivity 调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31647901/