• 【Android开发学习笔记】【第三课】Activity和Intent


      首先来看一个Activity当中启动另一个Activity,直接上代码说吧:

      (1)首先要多个Activity,那么首先在res-layout下新建一个 Other.xml,用来充当第二个Activity的布局文件

        

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        
        <TextView
            android:id="@+id/MyTest"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
         />
    </LinearLayout>

       (2)加入一个 src 下加入一个类文件(java里是这么说的吗,我一直在搞c++,不太清楚java里面的属于怎么说)

        记住类一定要 继承Activity ( public class *** extends Activity ),然后重写 onCreate 方法

        

        

    package com.example.cart;
    
    import android.R.string;
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.TextView;
    
    public class OtherActivity extends Activity
    {
        private TextView mytext = null;
        @Override
        protected void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.othery);
                    
            mytext = (TextView)findViewById(R.id.MyTest);
            mytext.setText("hello activity");
        }
    }

        这个Activity呢,其实很简单就是只有一个TextView,内容就是“hello activity”

      (3)接下来我们需要在 AndroidManifest.xml 当中注册这个Activity

         

      (4)我们需要在主的activity当中去调用,具体的做法是 首先在主Activity的布局是只有一个按钮,然后我们监听这个按钮按下事件,

          按下这个按钮就会通过Intent来调用另一个Activity,也就是我们上面创建的Activity,下面是代码:

    package com.example.cart;
    
    import android.app.Activity;
    import android.app.ActionBar;
    import android.app.Fragment;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.view.View.OnClickListener;
    import android.net.Uri;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    import android.widget.TextView;
    import android.os.Build;
    
    public class MainActivity extends Activity 
    {  
        public Button mybutton = null;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            mybutton = (Button)findViewById(R.id.MyButton);
            mybutton.setText("nihao-ha2ha");
            mybutton.setOnClickListener(new MyButtonListen());    
        }
        
        class MyButtonListen implements OnClickListener
        {
            @Override
            /* 如果遇到 aetOnclickListener报错的时候,按照下面来做:
    1.把 onClick(DialogInterface arg0, int arg1) 改成 onClick(View v)
    2.把 import android.content.DialogInterface.OnClickListener; 改成 import android.view.View.OnClickListener; */
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setClass(MainActivity.this, OtherActivity.class);
                MainActivity.this.startActivity(intent);         
            }
        }
    }

      (5) 运行程序之后,首先进入第一个Activity,点击了按钮了之后调转到了第二个Activity

           

      接下来尝试一个Activity当中启动另一个Activity的时候,传递数据给另一个Activity:

      Intent包含:ComponentName、Action、Data、Extras、Category、Flags,我们就将使用Extra来进行数据的传递

         (1)主Activity当中这样调用

                Intent intent = new Intent();
                intent.putExtra("testintent", "ccyy");
                intent.setClass(MainActivity.this, OtherActivity.class);
                MainActivity.this.startActivity(intent);    

      (2)接受端是这样的

        protected void onCreate(Bundle savedInstanceState) 
        {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.othery);
            
            Intent intent = getIntent();
            String myvalue = intent.getStringExtra("testintent");
                    
            mytext = (TextView)findViewById(R.id.MyTest);
            mytext.setText("hello activity" + myvalue);
        }

      当然,Intent进行数据传递的时候,不仅可以在同一个应用程序的不用Activity直接进行传递,而且可以进行不同应用程序的调用和数据传递:

      下面通过Uri调用发短信的界面来进行说明,代码还是加到刚才的按钮相应中:

                Uri uri = Uri.parse("smsto:13008574656");
                Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
                intent.putExtra("sms_body", "hi,I am a student~");
                MainActivity.this.startActivity(intent);

      运行之后,点击按钮进入到发短信的界面:

      

      

      这次学习主要理解了:

      1.多个Activity

      2.Intent的基本作用

      3.一个Activity当中启动另一个Activity

      4.使用Intent在Activity之间传递数据

  • 相关阅读:
    NORDIC BLE MAC ADDR
    dbm和发射功率得对照表
    git切换账号邮箱
    文件编码问题造成的汉字输出乱码问题
    自定义printf 打印函数
    NORDIC 烧录BLE协议栈后不能用JLINK仿真bootloader问题及修改方案
    NORDIC BLE升级
    NORDIC ble RSSI
    NORDIC 错误文件
    NORDIC 协议栈下使用硬件定时器
  • 原文地址:https://www.cnblogs.com/by-dream/p/3807046.html
Copyright © 2020-2023  润新知