android开发教程启动其他的Activity.docVIP

  • 12
  • 0
  • 约9.81千字
  • 约 8页
  • 2016-08-15 发布于重庆
  • 举报
android开发教程启动其他的Activity

启动其他的Activity 在完成上一课(建立简单的用户界面)后,你已经拥有了显示一个activity(唯一屏幕)的app(应用),并且这个activity包含了一个文本字段和一个按钮。 在这节课中,你将会添加一些新的代码到MainActivity中,当用户点击发送(Send)按钮时启动一个新的activity。 响应Send(发送)按钮 响应按钮的on-click(点击)事件,打开fragment_main.xml布局文件然后在Button(按钮)元素中添加android:onclick属性: Button android:layout_width=wrap_content android:layout_height=wrap_content android:text=@string/button_send android:onClick=sendMessage //sendMessage is the method name / android:onclick属性的值sendMessage就是当用户点击你屏幕按钮时触发方法的名字。 添加相应的方法在MainActivity类中: /** 当用户点击按钮时会被调用 */ public void sendMessage(View view) { // 响应按钮的事件处理逻辑 } 请注意,为了让系统能够将这个方法(你刚在MyFirstActivity中添加的sendMessage方法)与在android:onClick属性中提供的方法名字匹配,它们的名字必须一致,特别是,这个方法必须满足以下条件: 公共的 没有返回值 有唯一的视图(View)参数(这个视图就是将被点击的视图) 接下来,你可以在这个方法中编写读取文本内容的代码,并将该内容传到另一个Activity。 构建一个Intent Intent是在不同组件中提供运行时连接的对象(比如两个Activity)。Intent代表一个应用想去做什么事,你可以用它做各种各样的任务,不过大部分的时候他们被用来启动另一个Activity。 在sendMessage()方法中创建一个Intent并启动名为DisplayMessageActivity的Activity: Intent intent = new Intent(this, DisplayMessageActivity.class); 在这之前你需要导入Intent类: import android.content.Intent; Tip:在中,按 + enter可以导入缺失的类(在Mac中使用Cmd + Shift + O ) 在这个Intent构造函数中有两个参数: 第一个参数是Context(之所有可以用this是因为当前Activity(MyFirstActivity)是Context的子类) 系统需要传递Intent的应用组件的class对象(在这个案例中,为应该被启动的activity)。 Note:如果你正在使用的是类似Eclipse的IDE,这里对DisplayMessageActivity的引用会报错,因为这个类还不存在;暂时先忽略这个错误,你很快就要去创建这个类了。 一个Intent(意图)不仅允许你启动另一个Activity,同时也可以传递一个数据包到另一个Activity,在sendMessage()方法里用方法得到EditText元素,然后将它的文本信息添加到Intent(意图): Intent intent = new Intent(this, DisplayMessageActivity.class); EditText editText = (EditText) findViewById(R.id.edit_message); String message = editText.getText().toString(); intent.putExtra(EXTRA_MESSAGE, message); Note:你需要导入android.widget.EditText类,再定义EXTRA_MESSAGE的值。 Intent可以携带各种数据类型的集合的key-value附加对,称作extras。?putExtra()方法把键名作为第一个参数,把值作为第二个参数。putExtra(),参见putExtra() 为了让下一个activity能够查询额外数据(extra data),应该用公共常量为Intent定义键。所以把EXTRA_MESSAGE定义添加到MainActivity类: public class MainActivity extends ActionBarActivity { public fina

文档评论(0)

1亿VIP精品文档

相关文档