Android之appWidget按鈕事件 傳值

2021-08-31 06:07:47 字數 2663 閱讀 4780

一、開啟activity

二、開始service

三、傳送按鈕action

下面開始乙個乙個分析,如何實現。

一、開啟activity

1、首先先定義個開啟activity的intent

eg: intent fullintent=new intent(this,fullscreen.class);

若要傳遞資料,則使用intent.putextra()方法

eg: fullintent.putextra("iscircle",iscircle);

2、用intent例項化乙個pendingintent,呼叫pendingintent的getacticity方法來啟動另乙個activity

①若該intent帶有資料,則需要將最後乙個引數的值設為:flag_cancel_current

eg: pendingintent pfullintent=pendingintent.getactivity(this, 0, fullintent,pendingintent.flag_cancel_current);

②若該intent不帶資料,則最後乙個引數設為0

eg: pendingintent pfullintent=pendingintent.getactivity(this, 0, fullintent, 0);

3、例項化remoteview,其對應相應的widget布局

eg: remoteviews views= newremoteviews(getpackagename(), r.layout.widget);

4、給remoteview上的button或imagebutton設定按鈕事件

eg: views.setonclickpendingintent(r.id.ibfullscreen,pfullintent);

eg: public remoteviews views;//remoteview物件

publiccomponentname thiswidget; //元件名

二、開啟service

1、定義乙個intent來開啟service

eg: intent startserviceinten=newintent("zyf.temp.service.start");

注:引數為開啟service的動作

2、用intent例項化乙個pendingintent,利用pendingintent的getservice方法來啟動乙個服務

eg: pendingintent pintent=pendingintent.getservice(context, 0, startserviceinten, 0);

3、例項化remoteview,其對應相應的widget布局

eg: remoteviews views= newremoteviews(getpackagename(), r.layout.widget);

4、給remoteview上的button或imagebutton設定按鈕事件

eg: views.setonclickpendingintent(r.id.ibfullscreen,pfullintent);

eg: public remoteviews views;//remoteview物件

publiccomponentname thiswidget; //元件名

三、傳送按鈕action

1、定義乙個intent來傳送按鈕action

eg: intent previnten=new intent("prev");

2、用intent例項化乙個pendingintent,利用pendingintent的getbroadcast方法來傳送廣播

eg: pendingintent pprevintent=pendingintent.getbroadcast(this, 0, previnten, 0);

3、例項化remoteview,其對應相應的widget布局

eg: remoteviews views= newremoteviews(getpackagename(), r.layout.widget);

4、給remoteview上的button或imagebutton設定按鈕事件

eg: views.setonclickpendingintent(r.id.ibprev,pprevintent);

eg: public remoteviews views;//remoteview物件

publiccomponentname thiswidget; //元件名

6、接收該action

⒈在action,要在manifest.xml中加入action

⒉在onreceive()方法內編寫要實現的動作

eg: if(intent.getaction().equals("prev"))

②在service內接收

⒈註冊乙個broadcastreceive,宣告接收器

eg: intentfilter filter=new intentfilter();

filter.addaction("prev");

registerreceiver(docommand, filter);

⒉,在broadcastreceive類的onreceive方法內編寫要實現的動作

eg: if(intent.getaction().equals("prev"))

**:

android之interpolator的用法詳解

acceleratedecelerateinterpolator 在動畫開始與結束的地方速率改變比較慢,在中間的時候加速 accelerateinterpolator 在動畫開始的地方速率改變比較慢,然後開始加速 anticipateinterpolator 開始的時候向後然後向前甩 anticip...

android之interpolator的用法詳解

android interpolator,經常和scorllercompat 配合使用,scrollercompat 是乙個控制滑動的類 interpolator 也可以通過 animation 的 setinterpolator 進行設定 interpolator 被用來修飾動畫效果,定義動畫的變...

Android之BroadReceiver的使用

今天我們來學習一下broadreceiver這個元件。我們首先來粗略地認識一下broadreceiver這個元件。也就是說,如果有誰向這個元件傳送訊息的話,那麼這個訊息就會被接受到。註冊broadreceiver有倆種方法,一種是靜態的註冊。也就是broadreceiver必須在androidman...