OPhone/Android的学习(3)—再熟悉几个常用的Widget

write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie

讨论新闻组及文件

一、 综述

其实相对来说,学习一个UI库(其实AndroidAPI最重要的就是这一部分,其他的可以用原有的JAVA标准库)最最主要的是了解其大致框架,并不一定要了解了每一个控件/Widget的用法,因为所有的控件/Widget都是在同样的框架下展开的,了解了一种两种,其他的需要用到的时候看看文档,基本也就知道怎么用了,可以等到实际开发的时候再去学习。整体的框架大概需要了解哪些呢?包括整体程序的执行流程,控件/Widget的创建,销毁流程,消息/事件 的响应及处理方式等,知道了这些,其他的都可以算是枝叶末节。

前面几节Android的学习虽然非常基础,但是都是围绕着整体框架的,其实一般来说一个Hello Wolrd就已经说明了一个程序的一半,这里,再通过几个Widget来熟悉一下上述流程。解释就不多说了,具体的东西参考文档。

二、 Message:

刚开始我一直在找Android弹出类似Windows MessageBox的对话框的办法,后来找到两种:

example1

package com.JTianLing;

import android.app.Activity;

import android.content.Context;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.LinearLayout;

import android.widget.Toast;

public class DevXMLUI extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

LinearLayout layout = new LinearLayout(this);

Button button = new Button(this);

button.setText("I'm So great Button");

button.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View v) {

Context context = getApplicationContext();

CharSequence text = "Hello toast!";

int duration = Toast.LENGTH_SHORT;

Toast toast = Toast.makeText(context, text, duration);

toast.show();

}

});

layout.addView(button);

setContentView(layout);

}

}

运行效果见插图1,点击按钮的时候弹出一个Toast,为啥叫这个,我也不明白。类似于一个Notice的效果,可以自动消隐。

另外一种比较正规,也就是通过对话框,只不过Android里面没有类似MessageBox一样使用简单的对话框,相对来说复杂一点。

Example2:

package com.JTianLing;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.Dialog;

import android.content.DialogInterface;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.LinearLayout;

public class DevXMLUI extends Activity {

static final int DIALOG_PAUSED_ID = 0;

@Override protected

Dialog onCreateDialog (int id)

{

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setMessage("Are you sure you want to exit?")

.setCancelable(false)

.setPositiveButton("Yes", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

DevXMLUI.this.finish();

}

})

.setNegativeButton("No", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

dialog.cancel();

}

});

AlertDialog alert = builder.create();

return alert;

}

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

LinearLayout layout = new LinearLayout(this);

Button button = new Button(this);

button.setText("I'm So great Button");

button.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View v) {

showDialog(DIALOG_PAUSED_ID);

}

});

layout.addView(button);

setContentView(layout);

}

}

还是单击那个伟大的按钮,才能弹出对话框,效果如插图2

至于这个复杂程序,我是比较有意见的。。上面那一大堆程序,其实在Windows这种已经是宇宙中最复杂的操作系统中实现都只需要12句话。。。。唉。。。。曾经多么常用的MessageBox啊。。。我甚至看到最极端的使用情况----一次我们游戏在一个玩家的机器上就是跑补起来,甚至连日志都打不出来,总监于是在每隔几行弹出一个MessageBox在玩家的机器上跟踪程序运行情况-_-!

暂告一段落

至此,对于一般的AndroidWidget不再进一步的深入学习,原理上基本上差不多,碰到需要的时候再去翻文档学习就好了。。。。毕竟我是来尝鲜的-_-!用了我45天的下班时间熟悉了一下Android,本质上。。。我还是个靠C++开发网络游戏服务器端程序的程序员,虽然由于工作需要,又碰巧刚开始工作的时候开发过客户端,所以经常到客户端客串编写一些与服务器交互性比较强的模块。

以后,考虑学习自己感兴趣的东西,对于我来说基本也就两部分,作为服务器端程序员,我关心网络,作为开发游戏的程序员我关心图形接口,这些以后就不放入这个系列,另开一个系列。

插图1:

OPhone/Android的学习(3)—再熟悉几个常用的Widget

插图2:

OPhone/Android的学习(3)—再熟悉几个常用的Widget

write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie

<script type="text/javascript"><!-- var sitebro_tracker_atc={u:'http://www.sitebot.com.cn/754892/',w:'NzU0ODky',bt:'#804000',bg:'#FFFFCC',cf:'#ffffff',ca:'#666666',bh:'#f4f4c6',cp:'%E6%9C%AC%E7%AB%99%E7%83%AD%E9%97%A8%E6%96%87%E7%AB%A0',l:10,s:0,lang:'zh_CN'}; // --></script><script src="http://www.sitebot.com.cn/js/widget_track2/tracker_atc.js" type="text/javascript"></script><script type="text/javascript"><!-- var sitebro_tracker_atc_kw = {u:'http://www.sitebot.com.cn/754892/',w:'NzU0ODky',bt:'#804000',bg:'#FFFFCC',fs:1,ca:'#666666',bh:'#f4f4c6',cp:'',l:10,s:1,lang:'zh_CN'}; // --></script><script src="http://www.sitebot.com.cn/js/widget_track2/tracker_atc_kw.js" type="text/javascript"></script>

更多相关文章

  1. [Android设计模式]Android退出应用程序终极方法
  2. Android—3分钟你也能学会AlertDialog对话框(2020-6-25)
  3. 浅谈Android开机启动速度优化(含应用程序启动速度优化)
  4. 使用Scala编写Android应用程序
  5. 如何在自己的程序中添加appWidget(附简单代码)

随机推荐

  1. 会话控制 -(一)COOKIE/SESSION
  2. 实例演示数据库的增删改查操作
  3. python 包之 retrying 重复回调教程
  4. 用户注册过程,会话的完整流程
  5. python 包之 retrying 重复回调教程
  6. Android(安卓)硬件抽象层(HAL)概要介绍和学
  7. Android中几种图像特效处理的集锦
  8. Android(安卓)studio简单使用JNI实例
  9. [置顶] 如何演示你的App?Android录制Gif动
  10. AndroidX将替代 Android支持库(android.s