`

在App Widget中添加Button并实现监听

 
阅读更多

PendingIntent:

创建方法:

     getActivity(Context, int, Intent, int),

     getBroadcast(Context, int, Intent, int),

     getService(Context, int, Intent, int);

 

RemoteViews的作用:

1.该对象表示了一系列的View对象。

2.RemoteViews所表示的对象运行在另外的进程中。

 此项目接着http://yinger-fei.iteye.com/admin/blogs/1173658的创建小部件项目开始写。

 这次程序功能:在App Widget中添加Button并实现监听。

1.向App Widget中添加Button

 

  <Button 
  	android:id="@+id/widgetButtonId"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="測試用按鈕"
  />

 

2.为Button绑定处理器

注意:由于App Widget和应用程序运行在不同的进程中(App Widget中的view运行在Home Screen进程中),所以无法按之前惯用的方法绑定监听器。

 

remoteViews.setOnClickPendingIntent(R.id.widgetButtonId,pendingIntent);

 在extends AppWidgetProvider的类中。实现onUpdate方法

 

@Override
	public void onUpdate(Context context, AppWidgetManager appWidgetManager,
			int[] appWidgetIds) {
		//ystem.out.println("onupdate");
		for(int i=0;i<appWidgetIds.length;i++){
			System.out.println(appWidgetIds[i]);
			//创建一个Intent对象
			Intent intent=new Intent(context,TargetActivity.class);
			//创建一个PendingIntent
			PendingIntent pendingIntent=PendingIntent.getActivity(context, 0, intent, 0);
			
			RemoteViews remoteViews=new RemoteViews(context.getPackageName(),R.layout.example_appwidget);
			//为按钮绑定事件处理器
			//参数含义 1 被绑定控件的id 2 事件发生时,那个pendingintent被执行
			remoteViews.setOnClickPendingIntent(R.id.widgetButtonId,pendingIntent);
			//更新appwidget
			//参数含义 1 被更新appwidgetid
			appWidgetManager.updateAppWidget(appWidgetIds[i], remoteViews);
		}

 

 这里显示的效果就是点击button时,跳转到另外一个Activity。使用的是getActivity();

分享到:
评论

相关推荐

    Android代码-Android

    ex05:AppWidget 的使用以及 Broadcast 的实现 ex06:简单的音乐播放器 ex07:数据存储 SharedPreferences ex08:数据存储 SQLite 数据库 ex09:网络访问 HTTP get/post WebService ex10:网络服务 使用Ksoap2来...

    Android 实现监听的四种方法详解实例代码

    直接上代码,大家可以参考下 (1)自身类作为事件监听器 ...import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity implements View.OnCli

    Android实验5-事件处理答案.doc

    } //Activity本身作为事件监听起器类,实现的事件处理方法 public void onClick(View v) { txt.setText("Activity"); } } Main.xml &lt;?xml version="1.0" encoding="utf-8"?&gt; ...

    Android中button的onClick事件几种方法

    Android中button的onClick事件几种方法 利用三种方法,学习button的监听事件。 方法一源码如下: package com.example.androidtest; import android.os.Bundle; import android.app.Activity; import android....

    Android移动开发实验6.doc

    " "(2)在MainActivity的onCreat()方法中,获取布局文件中添加的按钮,并" "为其设置单击事件监听器,实现启动另一个Activity功能; " "(3)创建详细页面Activity布局文件,名称为activity_detail.xml,在该" ...

    TagCloudLinkView-可以完成添加、删除、选择操作的标签控件,可以自定样式(颜色等),可删除的标签末尾带有'×'符号.zip

     &lt;Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="添加标签" android:onClick="addTag"/&gt;  &lt;com.ns.developer.tagview.widget.TagCloudLinkView   ...

    ElegantNumberButton-简单、通用的下单按钮.zip

    Integer finalNumber) : Set the operational range for the widget(设置最小值、最大值)setOnValueChangeListener(OnValueChangedListener listener): listen for changes in the value(设置监听器)

    android 百度地图 定位示例

    4.调用百度地图的APP 需要在 AndroidManifest.xml 添加 android:name="baidumapsdk.demo.DemoApplication" android:icon="@drawable/ic_launcher" android:label="@string/app_name" &gt; 这里需要添加key,创建...

    SQLiteDemo

    addButton.setOnClickListener(new View.OnClickListener() {//给addButton添加事件监听 public void onClick(View v) { // TODO Auto-generated method stub People_mll people=new People_mll(); ...

    android监听器实例代码

    代码分享: import androidx.appcompat.app....import android.widget.Button; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.

    android 五子棋源码

    //设置监听器,当ViewPager中的页面改变时调用 viewPager.setOnPageChangeListener(new MyPageChangeListener()); } @Override protected void onStart() { // TODO Auto-generated method stub ...

    安卓拨打电话+正则的使用

    //在一个应用中启动另一个应用,在拨号器应用里启动打电话应用 //Android系统中基于动作机制,来调用系统的应用,你告诉系统你想做什么动作,系统就会把能做这个动作的应用给你,如果没有这个应用,会抛异常 //...

    LCRapidDevelop-master

    - 下拉刷新 上拉加载 及自动加载---------------------------实现监听方便快捷 - RecyclerView设配器------------------------------------------再也不需要写ViewHolder - RecyclerView item加载动画-----------...

    高仿微信界面

    现在三个Fragment已经添加到了MainActivity中,滑动ViewPager切换Fragment,同时底部的导航栏也会切换,在为ViewPager添加监听以前,先说说底部导航栏。 第二步,底部导航。 这个的切换其实就是切换准备好的png...

    WelcomeVideoPager-仿蚂蜂窝自由行和慕课网视频欢迎页.zip

    import android.widget.Button; import android.widget.ImageView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity {  private ...

Global site tag (gtag.js) - Google Analytics