一:通过隐式意图来启动系统中的widget当中的列表
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);//通过隐示意图打开系统的widget的列表
二:将配置的intent传入startactivity()就可以看到系统当中的widget列表了
startActivity(intent);
package com.example.firstwigettest;
import android.app.Activity;
import android.appwidget.AppWidgetHost;
import android.appwidget.AppWidgetManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
public class MainActivity extends Activity {private AppWidgetHost appWidgetHost;
private Button bt;
private int APPWIDGET_HOST_ID = 0x100;
private String TAG = “mainActivity.class”;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main); init();
}
private void init() {
initCotrl();// initListener();
}
private void initListener() {
bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { initView(); } });
}
private void initView() {
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);//通过隐示意图打开系统的widget的列表 intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetHost.allocateAppWidgetId());// 分配一个widget的ID的出现 startActivity(intent); }
private void initCotrl() {
root = (LinearLayout) findViewById(R.id.root);// bt = (Button) findViewById(R.id.bt); appWidgetHost = new AppWidgetHost(this, APPWIDGET_HOST_ID); }
}
点击button之后,会弹出来系统当中widget列表,这就是我们操作的第一步。那么如何将系统当中的widget添加当我们自己应用的布局当中呢?后面我们在一起讨论,其实留有个疑问:为什么我们在创建appwidgethost对象,传入两个参数,第二个参数具体的意义什么没有弄明白,希望各位赐教