Android Widget 小工具(兩) 使用configure

來源:互聯網
上載者:User

標籤:

添加Widget在此之前需要做一些處理操作,可以使用 配置活動

在上一篇的實現基礎上,加上配置活動(configure=activity)。這時加入Widget時。會先開啟一個Activity,進行配置操作,

<appwidget-provider....android:configure="com.stone.ui.AppWidgetConfigureActivity" ></appwidget-provider>


配置活動的實現:

package com.stone.ui;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 com.stone.R;/* * 配置組件 * 在onCreate中setContentView()函數前加入setResult(RESULT_CANCLE) ,這樣假設在Activity初始化完畢前按下了BACK按鍵,則Widget不會啟動; * 在setContentView()函數之後(不一定要在onCreate中。在Activity退出前就可以),加入例如以下設定以指定須要啟動的Widget */public class AppWidgetConfigureActivity extends Activity implements OnClickListener {Button config1, config2, config3;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Intent intent = getIntent();Bundle extras = intent.getExtras();if (extras != null) {int widgetid = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, -1);//從intent中得出widgetid//通知 appwdiget 的配置已取消Intent reslut = new Intent();reslut.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetid);setResult(RESULT_CANCELED, reslut);System.out.println("result cancel");}setContentView(R.layout.switch_configure);config1 = (Button) findViewById(R.id.btn_config1);config2 = (Button) findViewById(R.id.btn_config2);config3 = (Button) findViewById(R.id.btn_config3);config1.setOnClickListener(this);config2.setOnClickListener(this);config3.setOnClickListener(this);}@Overrideprotected void onResume() {super.onResume();}private void onCompletedConfigure() {Intent intent = getIntent();Bundle extras = intent.getExtras();if (extras != null) {int widgetid = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, -1);//從intent中得出widgetid//通知 appwdiget 的配置已完畢Intent reslut = new Intent();reslut.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetid);setResult(RESULT_OK, reslut);System.out.println("result ok");finish();System.out.println("finish ok");}}@Overridepublic void onClick(View v) {if (v == config1) {//do config1} else if (v == config2) {//do config2} else if (v == config3) {//do config3}onCompletedConfigure();}}

switch_configure.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <Button     android:id="@+id/btn_config1"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="config1"/><Button     android:id="@+id/btn_config2"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="config2"/><Button     android:id="@+id/btn_config3"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="config3"/></LinearLayout>


著作權聲明:本文部落格原創文章,部落格,未經同意,不得轉載。

Android Widget 小工具(兩) 使用configure

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.