AndroidWidget基础知识

AndroidWidget基础知识

  1. 记得引入widget控件的包,importandroid.widget.*;

  2. 方法findViewById(R.id.*),该方法通过id标志寻找控件,返回类型是View类型,View是所有控件的父类(就像MFCCWnd类型是所有控件的父类一样),所以要强制转换成对应控件的类型。

  3. TextView类,该类是静态文本控件,有以下几个方法:

setText(“”);设置控件中的文本的内容

  1. Button

setText(“”);设置控件上的文本的内容


voidsetOnClickListener(View.OnClickListener l)

Registera callback to be invoked when this view is clicked.

这个函数的作用就是设置按钮被点击后的响应事件。


对于OnClickListener,它其实是view的一个内部类,这个内部类中只有一个共有的方法,那就是abstractvoid OnClick(View v),参数v是被点击的组件,函数内实现的是响应的事件。

  1. Intent

Intent是一种运行时绑定(runtimebinding)机制,它能在程序运行的过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来响应。

Anintent is an abstract description of an operation to beperformed.上面是androiddeveloper中对Intent类的描述,里面还说,一个Intent对象就像各个activity之间的胶水一样。在一个Intent对象中,包含以下信息:

action

Thegeneral action to be performed

data 

Thedata to operate on

component 

Specifiesan explicit name of a component class to use for the intent

extras 

Thisis a Bundle(键值对,另一个activity里面取数据的时候,就要用到key,找出对应的value ofany additional information

category 

 Givesadditional information about the action to execute.

type 

Specifiesan explicit type (a MIME type) of the intent data.

方法:

Intent setClass(Context packageContext, Class<?>cls)

Conveniencefor calling setComponent(ComponentName) withthe name returned by a Class object.

IntentputExtra(string,stirng);

该函数在extra信息中存放一个键值对,另一个activity可以根据传进来的键的值来确定value的值。


由上面我们可以看出,要想搞清楚setclass,必须先弄明白什么是setcompoment

【注】context类的简单解释

Context字面意思上下文,位于frameworkpackageandroid.content.Context中,其实该类为LONG型,类似Win32中的Handle句柄很多方法需要通过Context才能识别调用者的实例,比如说Toast的第一个参数就是Context一般在Activity中我们直接用this代替,代表调用者的实例为Activity,而到了一个buttononClick(Viewview)等方法时,我们用this时就会报错,所以我们可能使用ActivityName.this来解决,主要原因是因为实现Context的类主要有Android特有的几个模型,ActivityService以及BroadcastReceiver


IntentsetComponent(ComponentName component)

(Usuallyoptional) Explicitly set the component to handle the intent.

按照我的理解,setClass()函数只不过是setCompoment()函数换了一种形式罢了,他们的作用是相同的,都是设置intent对象中的copoment的信息,指明Intent对象要使用的设备名称。正如androiddeveloper中队setClass的解释一样,它“只是通过使用类对象返回的名字来更方便的调用setcompoment”


通过设置Intent对象设置来进行activity之间跳转的基本思路:

我们的主要目的已经很明确了,那就是通过点击一个按钮Button,来实现两个Activity之间的跳转。那么这个Button的点击响应事件可以通过使用setOnClickListener()来实现,只是这个函数的参数是view.OnClickListener这个内部类型的,而且如果我们要实现我们想实现的事件,那就必须来重写这个类中的onClickt()这个方法。我们可以通过implementsOnClickListener来创建一个新的类来实现我们要响应的事件。也就是说,我们现在每实现一个事件,都要让OnClickListener生出一个孩子来,只有通过构造这个孩子类的对象,我们才能够实现这个事件响应。

首先,我们来重载一下内部类的OnClick()这个方法。

classMyListener implements OnClickListener{

publicvoid onClick(View v){

Intentintent = new Intent();//创建一个Intent对象

Intent.setClass(Activity_1.this,Activity_2.class);//设置该intent要使用的设备,由第二个参数返回

Activity_1.this.startActivity(intent);//事件的响应

}

}

实现了该类之后,我们便能够实现事件的响应了

myButton.setOnClickListener(newMyListener());

以上便构成了按钮事件响应的所有的代码。

【注】Activity对象的startActivity的方法

VoidstartActivities(Intent[] intents)

Launcha new activity.

Intent1.putExtra(“label”,”Yelnosh”)

Intentintent = getIntent();

Stringvalue = intent.getStringExtra("lable");

Intent也可用于activity与其他应用程序之间的通信,比如下面的例子:

Uriuri = Uri.parse("smsto:18707192345");

Intentintent = newIntent(Intent.ACTION_SENDTO,uri);

intent.putExtra("sms_body","YelboshI love you!");

this.startActivity(intent);

这样我们就不用在新建一个acitivity了,而是直接由本次的activity跳转到发短信的界面,而且直接按发送便可以了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android的系统架构 6 一、应用程序 6 二、应用程序框架 6 三、Android Runtime 7 四、系统库 7 五、Linux 内核 8 Webkit浏览器引擎简介 9 Dalvik虚拟机简介 11 什么是Dalvik虚拟机 11 Dalvik和Android系统 11 Dalvik虚拟机的主要特征 12 Android应用开发和Dalvik虚拟机 15 Activity生命周期 16 一、Activity栈 16 二、Activity的4种状态 16 三、Activity的生命周期 17 四、实例说明 18 Android控件的继承关系 22 一、View与ViewGroup关系 22 二、各控件的继承关系 23 界面布局 25 LinearLayout(线性布局) 25 TableLayout(表格布局) 28 RelativeLayout(相对布局) 31 AbsoluteLayout(绝对布局) 34 FrameLayout(框架布局) 34 Toast 36 Notification 38 对话框 42 一、带三个按钮的对话框 42 二、简单列表对话框、单选列表对话框、多选列表对话框 44 三、水平进度对话框和圆形进度对话框 47 四、自定义对话框 49 Menu菜单 52 选项菜单 52 上下文菜单 53 三、子菜单 54 4种响应菜单项单击事件的方式 56 显示和编辑文本的控件 57 TextView 57 CheckedTextView 60 EditText 60 ExtraEditText 61 AutoComplteteTextView、MultiAutoCompleteTextView (自动完成输入内容) 61 Button 63 ImageButton 65 ZoomButton 65 日期和时间控件 66 DatePicker、TimePicker 66 AnalogClock、DigitalClock 68 单选框、复选框、开关状态按钮 69 单项选择(RadioGroup、RadioButton) 69 复选框(CheckBox) 71 开关状态按钮(ToggleButton) 73 下拉列表框Spinner 74 ScrollView、HorizontalScrollView 77 垂直滚动(ScrollView) 77 水平滚动(HorizontalScrollView) 78 两个方向均可滚动 78 TabHost 79 ProgressBar、SeekBar、RatingBar 81 进度条(ProgressBar) 81 拖动条(SeekBar) 83 评分组件(RatingBar) 86 GridView、Gallery和ImageSwitcher 88 GridView 88 Gallery和ImageSwitcher 91 ListView 94 一、普通的ListView 94 可以单选和多选的ListView 95 使用SimpleAdapter建立复杂的列表项 97 自定义Adapter来建立复杂的列表项 99 动态添加、删除ListView列表项 102 改变ListView列表项选中状态的背景颜色 102 可展开的列表组件 102 数据的存取 103 SharePreferences 6.1 103 文件的存储6.2 103 SQLite数据库6.4 103 ContentProvider、ContentResolver 6.5 105 Intent 106 用Intent启动Activity,并在Activity之间传递数据 106 调用其他应用程序中的Activity(打电话、浏览网页、发Email等) 109 接收和发送广播 113 接收系统广播 113 在自己的应用程序中发送广播 117 Android服务 118 系统服务 8.2 118 时间服务 8.3 118 跨进程访问 8.4 118 网络 119 图形、音频、视频 120 图形 10.1 120 音频、视频 10.2 120 2D动画 121 帧动画 121 补间动画 121 OpenGL ES编程 122 Android支持的各种资源 123 窗口小部件(App Widget) 124 NDK编程 125

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值