Android 顯示意圖激活另外一個Actitity

来源:http://www.cnblogs.com/wuyudong/archive/2016/07/11/5658935.html
-Advertisement-
Play Games

1、跳轉到一個新的Actitity 新建項目, 新建一個java類OtherScreenActivity 繼承自 Activity類 顯然需要新建一個名為activity_two的android.xml,隨便寫一些控制項佈局一下 MainActivity.java中的代碼如下 當然,click中的代碼 ...


1、跳轉到一個新的Actitity

新建項目, 新建一個java類OtherScreenActivity 繼承自 Activity類

package com.wuyudong.twoactivity;

import android.app.Activity;
import android.os.Bundle;

//activity是系統的重要組件
//OS要想找到activity 就必須在清單文件中配置
public class OtherScreenActivity extends Activity {
    
    //重寫activity的onCreate方法 方法裡面設置初始化程式的界面
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_two);
    }

}

顯然需要新建一個名為activity_two的android.xml,隨便寫一些控制項佈局一下

<?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" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <ProgressBar
        android:id="@+id/progressBar1"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

MainActivity.java中的代碼如下

package com.wuyudong.twoactivity;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
    //當用戶點擊按鈕的時候跳轉到第二個頁面
    public void click(View view) {
        Intent intent = new Intent();
        intent.setClassName(this, "com.wuyudong.twoactivity.OtherScreenActivity");
        startActivity(intent);
    }
}

當然,click中的代碼還可以改成下麵的形式:

    //當用戶點擊按鈕的時候跳轉到第二個頁面
    public void click(View view) {
        //Intent intent = new Intent();
        //intent.setClassName(this, "com.wuyudong.twoactivity.OtherScreenActivity");
        Intent intent = new Intent(this, OtherScreenActivity.class);
        startActivity(intent);
    }

清單文件AndroidManifest.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.wuyudong.twoactivity"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:icon="@drawable/icon1"
            android:name="com.wuyudong.twoactivity.MainActivity"
            android:label="@string/activity01" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
         <activity
             android:icon="@drawable/icon2"
            android:name="com.wuyudong.twoactivity.OtherScreenActivity"
            android:label="@string/activity02" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

其中drawable是新建在res文件夾下的文件夾,icon1和icon2是放進去的圖片

activity_main.xml代碼如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我是第一個界面" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="click"
        android:text="跳轉到第二個界面" />

</LinearLayout>

最終界面如下:

點擊按鈕後跳轉到第二個頁面

2、激活系統的應用程式的界面

對於intent.setClassName((String packageName, String className);

當我們不知道應用的packageName和className的時候,點擊app圖標,查看logcat日誌信息,下麵是我點擊圖庫圖標後所顯示的信息:

07-11 09:31:44.153: I/ActivityManager(1227): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.gallery/com.android.camera.GalleryPicker} from pid 1512

添加相應的按鈕事件代碼如下:

    
    //當用戶點擊按鈕的時候激活圖庫的應用
    //com.android.gallery/com.android.camera.GalleryPicker
    public void click2(View view) {
         Intent intent = new Intent();
         intent.setClassName("com.android.gallery", "com.android.camera.GalleryPicker");
         startActivity(intent);
     }

這樣就實現了激活系統的應用程式的界面

下麵來實踐一下,設計一個場景:當連接網路失敗的時候跳轉到系統的網路界面

代碼如下:

package com.wuyudong.testnetwork;

import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.widget.Toast;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // 檢查用戶的網路情況
        ConnectivityManager cm = (ConnectivityManager) this
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = cm.getActiveNetworkInfo();

        if (info != null && info.isConnected()) {
            Toast.makeText(this, "網路可用", 0).show();
        } else {
            Toast.makeText(this, "網路不可用", 0).show();
            //定向用戶到系統網路的界面
            Intent intent = new Intent();
            //07-11 15:11:47.488: I/ActivityManager(859): 
            //Starting: Intent { act=android.intent.action.MAIN cmp=com.android.settings/.WirelessSettings } from pid 1293
            intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings");
            startActivity(intent);
        }

    }

}

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本文主要對android6.0源碼中的Camera API2.0下的內置應用Camera2的caputre流程進行分析 ...
  • 實現圖片拉伸有三種方式. 1.直接修改圖片資源 2.通過圖片框可直接修改stretching 3.就是通過代碼的實現 // 可以把NSString 的參數 改成NSArray 數組存放參數 (就是可以修改多個) + (UIImage *)stretchImageWith:(NSString *)im ...
  • 設置一個按鈕的方法就不再贅述了 法一: UIBarButtonItem *oneButton = [[UIBarButtonItemalloc]initWithTitle:@"設置" style:UIBarButtonItemStylePlain target:selfaction:@selecto ...
  • 代碼: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.title=@"頁面調的時候隱藏工具條"; //當跳轉的時候,隱藏工具條 [self.tabB ...
  • 打開終端: 查看Git的版本的終端命令:git —version 輸入:ssh 查看是否已經存在ssh. 如果存在,先將已有的ssh備份,或者將新建的ssh生成到另外的目錄下 如果不存在,通過預設的參數直接生成ssh 生成過程如下: ssh-keygen -t rsa -C [email protected] ...
  • 當我們自定義View的時候,在給View賦值一些長度寬度的時候,一般都是在layout佈局文件中進行的。,比如android:layout_height="wrap_content",除此之外,我們也可以自己定義屬性,這樣在使用的時候我們就可以使用形如 myapp:myTextSize="20sp" ...
  • 你好, 世界 <!--EndFragment--> <!--EndFragment--> <!--EndFragment--> <!--EndFragment--> <!--EndFragment--> <!--EndFragment--> <!--EndFragment--> 【寫在開頭:】 『關 ...
  • 文件系統的文件太多,而且是照搬的MINIX的文件系統,不想繼續分析下去了。緩衝區機制和文件系統密切相關,所以這裡就簡單分析一下緩衝區機制。 buffer.c 程式用於對高速緩衝區(池)進行操作和管理。高速緩衝區位於內核代碼塊和主記憶體區之間,見圖9-9 中所示。高速緩衝區在塊設備與內核其它程式之間起著 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...