码迷,mamicode.com
首页 > 移动开发 > 详细

Android 学习Activity(1)activity和intent

时间:2016-03-13 16:13:42      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:

工具是: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"+"换行");

技术分享

每一个程序员从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方法
            
        }

捆绑在命令按钮上:

技术分享

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

技术分享

发现在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);

 

运行成功:

技术分享技术分享

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

技术分享

在两个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

标签:

原文地址:http://www.cnblogs.com/chengxs/p/5272152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!