Android 学习Activity(1)activity和intent

时间:2021-08-18 15:34:18

工具是:JDK环境配置+SDK+ADT工具

一、Activity  主要作用:

1、用户与应用程序的接口

2、控件的容器

二、创建Activity要点:(在src中的目录下包里)

1、一个Activity就是一个类,要继承android自身的一个类

2、需要复写Oncreate方法,第一个运行的Activity中调用oncreate来调用

3、Activity是一个组件,在Androidmanifest.xml中的intent-filter,在哪一个Activity中配置了intent-filter就是android中第一个启动的Activity

4、Activity中本身没有内容,在Activity中添加必要de组件,Textview,button,下拉菜单。单选按钮,多选按钮。。。。

三、layou中的布局文件

1、LinearLayout(线性布局)中的android:orientation=“vertical”//垂直

android:layout_width="fill_parent"//宽度

android:layout_height="fill_parent"//高度

2、<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_parent"

>

3 、调用Activity中可以用findviewbyid方法findviewbyid(R.id.自己去的名字)

public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);//父类中Oncreate方法
setContentView(R.layout.activity_main);//设置
//得到控件用findviewbyid
TextView mytextView=(TextView)findViewById(R.id.mytextView);
Button mybutton
=(Button)findViewById(R.id.mybutton);
mytextView.setText(
"我的第一个textview");
mybutton.setText(
"我的第一个button"+"\n"+"换行");

Android 学习Activity(1)activity和intent

每一个程序员从hello world开始

 

四、acticity和intent

(一)内容:

1、多个activit之间的关系

2、intent的基本作用     

3、在一个activity中方启动另外一个activity

4、在使用的intent在activity中使用intent进行数据的传递的基本方法

 

(二)多个activity之间的关系  

可以是同一个程序中的activity之间跳转,也可以是不同的应用中的activity

由intent启动非常重要的作用。

(三)intent的基本作用://intent是一个对象,翻译成中中文叫做意图,就像一个请求。

1、component name  //启动哪一个activity,根据intent对象component name信息,启动哪一个组件。

2、action//官方解释是指定另外一个activity做什么

3、data//从这个activity到另外一个activity中传递时intent中的data。

4、category//

5、extras//额外的信息,键值对,在intent中

6、flags

(三)intent的基本使用方法

   用startactivity方法,调用另外一个actcity,我们可以在intent中存放一些就extra中键值对,在另外一个activity中显示出来。

   在activity中使用button,得到button按钮,通过findviewbyid方法,把button生成私有变量。

   建立第二个activity,anotheractivity,继承Activity,复写oncreate(右键,source中的override/implemen,)

创建第二个布局文件,加上一个textview,在anotheractivity中获得textview。最终的要的是设置一个setContentView(R.layout.other),这个activity使用这样的一个布局。

   在Mainactivity中获得main.xml中的button中,首先设计一个监听器,把监听器捆绑在按钮上。

class MyButtonListener implements OnClickListener//MyButtonListener内部类r
{

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent=new Intent();//生成一个Intent对象 intent相当于一个请求
intent.putExtra("testIntent","123");//键值对名称就叫成testIntent,值是123
intent.setClass(MainActivity.this,anotheractivity.class);//从MainActivity调到anotheractivity
MainActivity.
this.startActivity(intent);//调用当前activity中的startActivity方法

}

捆绑在命令按钮上:

Android 学习Activity(1)activity和intent

启动后,点击按钮后发现一个异常

Android 学习Activity(1)activity和intent

发现在AndroidMainfest.xml中忘记了注册第二个anotheractivity,所以出现异常。bug

<activity android:name="anotheractivity"
android:label
="@string/other"/>

 

在anotheractivity中写上

//把值取出来
Intent intent=getIntent();//getintent方法得到mainactivity中的intent
String value=intent.getStringExtra("testIntent");//getStringExtra方法把键传进来

mytextview
=(TextView)findViewById(R.id.mytextview);
mytextview.setText(value);

 

运行成功:

Android 学习Activity(1)activity和intentAndroid 学习Activity(1)activity和intent

以上是跳转到另外一个activity。

Android 学习Activity(1)activity和intent

在两个activity中传递数据的方法,传的值是123。

 

 

使用Intent发送消息

从一个组件到另外一个组件

发短信是我们经常使用的功能,发短信时android系统自带的,这个两个应用程序中两个activity,不妨碍intent传递数据。

在anotheractivity中加入一段代码,已经不是之前那个activity,而是一个发短信的activity。

package com.helloworld;


import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.TextView;


public class anotheractivity extends ActionBarActivity {
private TextView mytextview=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.another);
//把值取出来
/*Intent intent=getIntent();//getintent方法
String value=intent.getStringExtra("testIntent");

mytextview=(TextView)findViewById(R.id.mytextview);
mytextview.setText(value);
*/
Uri uri
=Uri.parse("smsto://0800000123");
Intent intent
=new Intent(Intent.ACTION_SENDTO,uri);//操作系统自己的携带的ACTION_SENDTO
intent.putExtra("sms_body","The SMS Text");
startActivity(intent);
}

}

运行命令按钮之后:

Android 学习Activity(1)activity和intent