zoukankan      html  css  js  c++  java
  • android_定义多个Activity及跳转

    说明:在Android应用程序其中创建多个activity,而且启动一个activity的方法,以及activity之间的跳转。

    样例:在MainActivity里面加入一个button,触动button,跳转到SecondActivity。

    步骤:1、定义一个类,继承Activity。复写Activity其中的OnCreate方法。

    package com.away.b_01_multiactivity;
    
    import android.app.Activity;
    import android.os.Bundle;
    
    public class SecondActivity extends Activity{
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.second);
    	}
    
    }
    
    同一时候,也新建一个布局文件second.xml ,而且在SecondActivity的OnCreate方法中调用setContentView,设置SecondActivity使用的布局文件。
    <TextView
            android:id="@+id/secondTextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="第二个Activity"/>
    2、在AndroidMainfest.xml文件其中注冊Activity

    <activity
          android:name="com.away.b_01_multiactivity.MainActivity"
          android:label="@string/app_name" >
          <intent-filter>
              <action android:name="android.intent.action.MAIN" />
    
              <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
    </activity>
    <activity
          android:name="com.away.b_01_multiactivity.SecondActivity"
          android:label="second" >
    </activity>
    PS:<intent-filter>作为activity的子标签。它的作用是设置某个activity为应用程序默认启动的activity。android:label的作用就是这个activity显示到手机上面的名字。

    到这里activity就创建好了,以下实现activity之间的跳转。

    3、在activity_main.xml其中加入一个<Button>。

    <Button 
            android:id="@+id/Button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/TextView"
            android:text="启动SecondAtivity"/>
    4、在MainActivity.java里面生成意图对象(Intent),调用 setClass方法设置所要启动的Activity。调用startActivity方法启动Activity。
    package com.away.b_01_multiactivity;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    
    public class MainActivity extends Activity {
    
    	private Button button;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            button=(Button)findViewById(R.id.Button);
            button.setOnClickListener(new ButtonListener());
        }
    
    
        class ButtonListener implements OnClickListener{
    		@Override
    		public void onClick(View v) {
    			Intent intent=new Intent();
    			//setClass函数的第一个參数是一个Context对象
    			//Context是一个类,Activity是Context类的子类,也就是说,全部的Activity对象都能够向上转型为Context对象
    			//setClass函数的第二个參数是Class对象,在当前场景下,应该传入须要被启动的Activity的class对象
    			intent.setClass(MainActivity.this, SecondActivity.class);
    			startActivity(intent);
    		}
        }
    }

    也能够这样写:

    Intent intent = new Intent(MainActivity.this, SecondActivity.class);
    startActivity(intent);

    还能够这样写:

    startActivity(new Intent(MainActivity.this, SecondActivity.class));

    仅仅要这两句。就能够实现从MainActivity页面跳转到SecoidActivity页面了。

    附上效果图:(原创不易,转载请标明出处 = - =)


    结构图:


    有的时候,在跳转页面时还须要传递数据,这个时候能够看这里>>>Activity传值

    欢迎交流 http://blog.csdn.net/ycwol/article/details/39736075



  • 相关阅读:
    森田疗法
    “不支持一个STA线程上针对多个句柄的WaitAll。”的解决方案
    烽火HG226信息
    祝贺小牛队得NBA总冠军
    .net4调用非托管代码出现:PInvoke调用导致堆栈不对称
    大怪路子逻辑
    C#内存复制与比较
    【收藏】UDP广播和多播
    Objectivec NSString
    Objectivec NSDictionary(NSMutableDictionary)
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5111876.html
Copyright © 2011-2022 走看看