編輯:關於Android編程
在添加Widget之前需要做一些處理操作,可以使用 配置活動
在上一篇的實現基礎上,加上配置活動(configure=activity)。這時添加Widget時,會先打開一個Activity,進行配置操作,
配置活動的實現:
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;
@Override
protected 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);
}
@Override
protected 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");
}
}
@Override
public 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
Android之PreferenceActivity應用詳解
為了引入這個概率 首先從需求說起 即:現有某Activity專門用於手機屬性設置 那麼應該如何做呢? 根據已學知識 很快一個念頭閃過 即:Activity + Prefe
android源碼解析(二十三)--)Android異常處理流程
前面的幾篇文章都是講解的android中的窗口顯示機制,包括Activity窗口加載繪制流程,Dialog窗口加載繪制流程,PopupWindow窗口加載繪制流程,Toa
Android仿人人網滑動側邊欄效果
很多應用為了節省空間而又使界面能夠充足的顯示信息,大多數應用都采用了側邊欄的方式,如下圖: 來說說它
Android TreeView效果實現方法(附demo源碼下載)
本文實例講述了Android TreeView效果實現方法。分享給大家供大家參考,具體如下:應該說很多的操作系統上面都提供了TreeView空間,實現樹形結構,這個樹形結