Android 学习Activity(1)activity和intent

工具是: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);    
        }
         
    }
复制代码

运行命令按钮之后:

 

posted @   saucxs  阅读(867)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示