【发布时间】:2015-05-10 22:55:45
【问题描述】:
我正在使用 Android Studio 创建一个 Android Launcher 应用。
我正在尝试添加一项功能,允许用户选择已安装的小部件并将其放置在我的启动器上。与 Play 商店中的大多数启动器提供的类似。
我的代码目前在appWidgetHost 和appWidgetManager 上给我cannot resolve symbol 错误。
我在 SO 和 Google 上查看了如何实现这一点,但我仍然对如何使其工作以及如何更正我的代码感到困惑。
这是我的代码:
package com.example.widgettest;
import android.app.Activity;
import android.appwidget.AppWidgetHostView;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProviderInfo;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends Activity {
Button widgetButton;
// APPWIDGET_HOST_ID is any number you like
appWidgetManager = AppWidgetManager.getInstance(this);
appWidgetHost = new AppWidgetHost(this, 1);
AppWidgetProviderInfo newAppWidgetProviderInfo = new AppWidgetProviderInfo();
// Get an id
int appWidgetId = appWidgetHost.allocateAppWidgetId();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addwidgetButtonListener();
}
public void createwidget(){
// Get the list of installed widgets
List<AppWidgetProviderInfo> appWidgetInfos = new ArrayList<AppWidgetProviderInfo>();
appWidgetInfos = appWidgetManager.getInstalledProviders();
// Create Widget
AppWidgetHostView hostView = appWidgetHost.createView(this, appWidgetId, newAppWidgetProviderInfo);
hostView.setAppWidget(appWidgetId, newAppWidgetProviderInfo);
// Add it to your layout
RelativeLayout rl = (RelativeLayout) findViewById(R.id.rl);
rl.addView(hostView);
}
public void addwidgetButtonListener() {
widgetButton = (Button) findViewById(R.id.button);
widgetButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
createwidget();
}
});
}
}
【问题讨论】:
标签: java android widget android-appwidget buttonclick