前言

  这段时间在研究android平台上的开源项目——StandupTimer,这是由jwood所设计的一个较为简单android应用,用于控制会议时间,类似秒表倒计时。

android的提醒

  android 的提醒主要有3中方式:Toast Notification,Status Bar Notification,Dialog Notification;在Standup Timer 中使用了很多Dialog notification。特别是在删除某项时,弹出的确认对话框。Dialog Notification 主要分为四种:Alert Dialog,ProgressDialog ,DatePickerDialog ,TimePickerDialog。本文将重点讲述Alert Dialog。

Alert Dialog

  Alert Dialog的创建比较简单,我们将按步骤来创建一个带有EditText view的警告对话框,通过该对话框创建Standup timer中参加会议的团队。   第一步,重写 onCreateDialog方法,根据ID创建不同的对话框。 @Override
protected Dialog onCreateDialog( int id)
{
switch (id)
{
case CREATE_TEAM_DIALOG:
if (createTeamDialog == null )
{
AlertDialog.Builder builder
= new AlertDialog.Builder( this );
builder.setTitle(R.string.add_team);
builder.setView(getTextEntryView());
builder.setCancelable(
true );
// 设置确定按钮和监听其事件
builder.setPositiveButton(R.string .ok, addTeamButtonListener());
// 设定否定按钮和监听其事件
builder.setNegativeButton(R.string.revert, cancelListener());
createTeamDialog
= builder.create();

}
return createTeamDialog;
default :
Logger.e(
" Attempting to create an unkonwn dialog with an id of " + id);
return null ;
}
}

AlertDialog.Builder 是用来创建具体警告对话框的。     setTitle()为设置对话框的标题;     setView(View)用于给对话框加载View,如果需要的话,这里加载的是一个EditText。      setCancelable(boolean) 设置返回键是否能撤销对话框,一般为true     setPositiveButton()设置按下表示确定按钮时按钮的text,和按钮的事件监听器     setNegativeButton()设置取消按钮的text 和监听器   另外如果对话框不需要特别的视图控件的话可以不使用setView()。直接通过 setMessage(Msg)来显示你需要的展示的警告信息。 Builder各项属性设置完成后,即可通过builder.create(),创建AlertDialog对话框。 第二步展示对话框   展示对话框非常简单,在你需要弹出提醒的操作里加入showDialog(id) 即可。通常根据id对对话框进行封装。 private void displayAddTeamDialog() {
showDialog(CREATE_TEAM_DIALOG);

}

第三步编写对话框中按钮事件   这与普通按钮的事件编写相似,这里按钮的事件处理的是添加一个团队操作。 private OnClickListener addTeamButtonListener() {

return new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
EditText collectedTextView
= (EditText) getTextEntryView().findViewById(R.id.collected_text);
String name
= collectedTextView.getText().toString();
Team.create(name, TeamListActivity.
this );
teamListAdapter.add(name);
}
};
}

返回的是 DialogInterface 下的 OnClickListener。 private OnClickListener cancelListener() {

return new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();

}
};
}

撤销对话框操作,撤出警告。

关于setView

  代码中有几处调用了getTextEntryView方法,这是一个返回View的自定义方法。setView(View) 可以让展现你想要的View,用来接收用户的输入信息等。 synchronized protected View getTextEntryView() {
if (txtEntryView == null ) {
LayoutInflater factory
= LayoutInflater.from( this );
txtEntryView
= factory.inflate(R.layout.collect_text, null );
}
return txtEntryView;

}

LayoutInflater 可以将res 文件夹下的layout 布局的XML 转化为 View。也可以通过 getLayoutInflater()或getSystemService(String)方法创建LayoutInflater LayoutInflater inflater = (LayoutInflater)context.getSystemService
Context.LAYOUT_INFLATER_SERVICE);

inflate(int resId, ViewGrouproot),将预先定义的XML布局文件转化为View <? xml version="1.0" encoding="utf-8" ?>

< EditText xmlns:android ="http://schemas.android.com/apk/res/android" android:id ="@+id/collected_text"
android:layout_width
="fill_parent" android:layout_height ="fill_parent"
android:padding
="5dp" />

系列索引

   Android 开源项目-StandupTimer学习笔记索引

更多相关文章

  1. Android系统自带样式(android:theme)
  2. Android(安卓)UI设计——EditText控件
  3. android 快速入门之一 “Hello world”,以及debug和日志输出
  4. Android(安卓)调用系统的拍相程序进行录像
  5. Android实现微信底部导航条
  6. 安卓开发之实现下角圆形按钮
  7. 透明button 转
  8. SDK中模拟器创建命令行!!!
  9. Android中按钮点击效果显示

随机推荐

  1. UBUNTU下以MTP模式自动挂载NEXUS 7
  2. Android@Kotlin 在Android(安卓)studio
  3. Linux-Android启动之Machine-Init函数
  4. Android(安卓)listview的使用
  5. Android保持当前Activity常亮问题。
  6. Android桌面小部件AppWidget(2)
  7. Kotlin, Android的Swift
  8. Windows Phone 7 不温不火学习之《独立存
  9. Android(安卓)RxJava 实际应用讲解:(无条件
  10. listview滑动背景变色,点击变色等