好文档 - 专业文书写作范文服务资料分享网站

Android编程入门教程andbook中文版 - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

使用Intent

如我们所知,需要被做的事件用Intent意图目的来表达。Intent换句话说被用来开启其他Activity。

启动(子)Activity

在一个应用程序生命期中一个基本的事情是比HelloWorld应用程序更精密的,就是启动其他Activity,尤其是子Activity。让我们假设以下情况:

我们想要一个像输入框这样的。用户可以在该输入框中写一个他想要在Google上查询的关键字。

因此我们将像我们以前已经做过的一样来创建一个Android项目。第一件事就是添加一个我们将叫做\的第二个Activity。

一开始,代码框架像这样:

packageorg.anddev.andbook.startingsubactivities;importandroid.app.Activity;importandroid.os.Bundle;

publicclassMySecondActivityextendsActivity{

/**Calledwhentheactivityisfirstcreated.*/@Override

publicvoidonCreate(Bundleicicle){

super.onCreate(icicle);

setContentView(R.layout.main);}}

由anddev.org提供

46

Download at Pin5i.Com

andbook-Android编程

我们现在将添加一个Button到第一个Activity中。我们修改main.xml来完成,当然,不通过选择JavaUI来完成。

浏览\并且你将看到和下面相似的代码:

xmlns:android=\android:orientation=\android:layout_width=\android:layout_height=\>

android:layout_width=\android:layout_height=\android:text=\World,StartingSubactivities\/>

注意:也许Eclipse用它自己的xml-编辑器(对我们没有任何用处的编辑器)打开这个main.xml。从SDK-versionm5开始,ADT插件提供了一个带有高亮洁语法的Resource-Editor。

图17打开Resource-Editor

如果我们现在启动该应用程序,它像这样的:

由anddev.org提供

47

图18默认布局(SDK-versionm5)

当我们想要在我们应用程序中有一个Button时,我们将不得不加一些xml代码:

android:layout_width=\android:layout_height=\android:text=\Search-Dialog\/>

如你可以想象的,\让一个View使用所有父View提供的空间,\只是使用它需要正确地显示自己内容的布局空间。

因此我们的button将宽度填充满整个屏幕,包装我们键入的android:text属性\Search-Dialog\。

我们的应用程序现在像这样:

图19带有按钮的布局(SDK-versionm5)

当我们现在点击该按钮--当然,没有事件发生。我们不得不申请一个监听器,是特殊的一个OnClickListener,来处理在这个按钮上的点击事件。但是等等……我们怎样在Java代码中引用到那个按钮?

由anddev.org提供

48

Download at Pin5i.Com

andbook-Android编程

在Java代码中找到XML定义的View

为了找到一个在XML被定义的View,我们第一不得不添加那个View的一单行定义到XML定义中,一个android:id属性。在此例我们将给它\这个id:

android:id=\android:layout_width=\android:layout_height=\android:text=\Search-Dialog\/>

在Java代码中找到那个View同样简单。在一个Activity中你可以使用

\resourceID)\方法,使用已经在XML中定义的android:id来得到一个View的引用。

同样其他继承于View的类也可以这样做,换句话说,就是EditText、TextView、MapView等等……

但是\resourceID)\只能被用在View上面。这些

View是放进布局中的。而这个Layout布局被Activity使用setContentView()来加载的。

回到我们例子中,我们添加了以下代码到onCreate(),在setContentView()的右边:

/*FindtheButtonfromourXML-layout.*/

Buttonb=(Button)this.findViewById(R.id.btn_open_search);

如果Eclipse不能找到Button类,只是敲击\即可,它将会组织导入和自动添加(本例中):

importandroid.widget.Button;

由anddev.org提供

49

为View处理点击

我们现在记得我们曾想让我们的Button按钮可点击。因此我们简单的设置一个未命名的OnClickListener到我们的Button上。b.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//TODOAuto-generatedmethodstub//PlacecodetohandleButton-Clickhere.}});注意:Eclipse可能不会自己不会认识到以下的导入:

importandroid.view.View.OnClickListener;

现在我们将添加一个Intent到onClick事件中。该事件会启动我们的子Activity:

/*CreateanIntenttostart**MySecondActivity.*/Intenti=

newIntent(StartingSubactivities.this,MySecondActivity.class);/*SendintenttotheOStomake**itawarethatwewanttostart

**MySecondActivityasaSubActivity.*/startSubActivity(i,0x1337);

startSubActivity()第二个参数可以是任何唯一整数。他将在后面有用(当我们将替换它向我们的Activity声明为final时),当我们想要从SubActivity中返回一个结果时。

以上方法已经不用了,在新的SDKversion1.5中,使用以下方法:

/*CreateanIntenttostart*MySecondActivity.*/

Intenti=newIntent(NextActivity.this,MySecondActivity.class);/*SendintenttotheOStomake**itawarethatwewanttostart

**MySecondActivityasaSubActivity.*/startActivity(i);

startSubActivity()方法已经不用了。要从SubActivity中返回一个结果,使用以下两个方法:

startActivityForResult(intent,requestCode);

startActivityFromChild(child,intent,requestCode);

由anddev.org提供

50

Download at Pin5i.Com

Android编程入门教程andbook中文版 - 图文

使用Intent如我们所知,需要被做的事件用Intent意图目的来表达。Intent换句话说被用来开启其他Activity。启动(子)Activity在一个应用程序生命期中一个基本的事情是比HelloWorld应用程序更精密的,就是启动其他Activity,尤其是子Activity。让我们假设以下情况:我们想要一个像输入框这样的。用户可
推荐度:
点击下载文档文档为doc格式
441608m1o39pugm7q9v2
领取福利

微信扫码领取福利

微信扫码分享