日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android--初级

發布時間:2023/12/29 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android--初级 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android--初級

  • 前言
  • 一、初識?
    • 1.目錄
    • 2.res
    • 3.Android程序簽名打包
    • 4.反編譯獲取文件(失敗)
  • 二、控件
    • 1.文本標簽TextView與按鈕Button
    • 2.文本編輯框EditText
    • 2.進度條ProgressBar
    • 4.復選按鈕CheckBox
    • 5.單選組件RadioGroup與單選按鈕RadioButton
    • 6.圖像顯示ImageView與畫廊組件Gallery
    • 7.消息提示Toast
    • 8.列表組件 ListView和ListActivity
    • 9. 滑動抽屜組件SlidingDraw
  • 三.中級控件
    • 1.傳遞參數組件Intent
      • 1.Activity頁面切換
      • 2.應用Intent在Activity頁面之間傳遞數據
    • 2. 菜單Menu
      • 1.選項菜單(Option Menu)
      • 2.上下文菜單(Context Menu)
    • 3. 對話框
      • 1.消息對話框AlertDialog
      • 2.進度條對話框ProgressDialog
      • 3. 日期選擇對話框和時間選擇對話框
    • 4.1 繪制幾何圖形
    • 5. 后臺服務與系統服務調用
      • 5.1后臺服務Service
      • 5.2信息廣播機制Broadcast
      • 5.3 系統服務
        • 5.3.1 Android的系統服務
        • 5.3.2 系統通知服務Notification
        • 5.3.3 系統定時服務AlarmManager
    • 6.1 Web視圖
        • 6.1.1 瀏覽器引擎WebKit
        • 6.1.2 Web視圖對象
        • 6.1.3 調用JavaScript
      • 6.2 基于TCP協議網絡程序設計
  • 四.案例
    • 1.hello
    • 2.密碼驗證程序
    • 3.Toast的四種方式
    • 4.ImageSwitch(失敗的,有參考價值)
    • 5.WebView(需要聯網)
    • 6.MainActivity(模板)
    • 7.密碼驗證程序
    • 8.動畫伸縮,旋轉,擴大
    • 9.長按條目激活上下文菜單
    • 10.菜單項
    • 9.fargment
    • 11.myViewpager
    • 12.myViewpager2
    • 13.長按條目激活上下文菜單
  • 總結


前言

因為熱愛,所以學習
官網
學習路線


一、初識?

1.目錄

2.res

res目錄用于存放項目所需要的聲音、圖片、用戶界面等資源文件。


在XML文件中表示顏色的方法有多種:
#RGB:用三位十六進制數分別表示紅、綠、藍顏色。
#ARGB:用四位十六進制數分別表示透明度、紅、綠、藍顏色。
#RRGGBB:用六位十六進制數分別表示紅、綠、藍顏色。
#AARRGGBB:用八位十六進制數分別表示透明度、紅、綠、藍顏色。

如何去使用:

ava代碼中使用:

Java 文字:

txtName.setText(getResources().getText(R.string.name));
圖片:

imgIcon.setBackgroundDrawableResource(R.drawable.icon);
顏色:

txtName.setTextColor(getResouces().getColor(R.color.red));
布局:

setContentView(R.layout.main);
控件:

txtName = (TextView)findViewById(R.id.txt_name);

3.Android程序簽名打包

打包教程

4.反編譯獲取文件(失敗)

看看相關

二、控件

Android系統的大多數用戶界面組件均放置在widget包中。

1.文本標簽TextView與按鈕Button

文本標簽TextView用于顯示文本內容,是最常用的組件之一

按鈕Button在程序設計中最常用的方式是實現OnClickListener監聽接口,當單擊按鈕時,通過OnClickListener監聽接口觸發onClick()事件,實現用戶需要的功能。
OnClickListener接口有一個onClick()方法,在按鈕Button實現OnClickListener接口時,一定要重寫這個方法。
按鈕Button調用OnClickListener接口對象的方法如下:
  按鈕對象. setOnClickListener(OnClickListener對象);

import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings('ignore') import ssl ssl._create_default_https_context = ssl._create_unverified_context

2.文本編輯框EditText

文本編輯框EditText


定義框EditText元素的android:numeric屬性,其取值只能是下列常量(可由“|”連接多個常量):
integer 可以輸入數值.
signed 可以輸入帶符號的數值.
decimal 可以輸入帶小數點的數值.

2.進度條ProgressBar

進度條ProgressBar能以形象地圖示方式直觀顯示某個過程的進度。

package com.ex2_10; import android.app.Activity;。。。。 public class Ex03_10Activity extends Activity { ProgressBar progressBar; Button btn1,btn2;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);progressBar = (ProgressBar)findViewById(R.id.ProgressBar01);btn1=(Button)findViewById(R.id.button1);btn2=(Button)findViewById(R.id.button2);btn1.setOnClickListener(new click1());btn2.setOnClickListener(new click2()); } class click1 implements OnClickListener {public void onClick(View v) {progressBar.incrementProgressBy(5);}} class click2 implements OnClickListener {public void onClick(View v) {progressBar.incrementProgressBy(-5);}} }

4.復選按鈕CheckBox

復選按鈕CheckBox用于多項選擇的情形,用戶可以一次性選擇多個選項。復選按鈕CheckBox是按鈕Button的子類,其屬性與方法繼承于按鈕Button。

5.單選組件RadioGroup與單選按鈕RadioButton

單選組件RadioGroup用于多項選擇中只允許任選其中一項的情形。單選組件RadioGroup由一組單選按鈕RadioButton組成。

6.圖像顯示ImageView與畫廊組件Gallery

ImageView類用于顯示圖片或圖標等圖像資源,并提供圖像縮放及著色(渲染)等圖像處理功能。

scaleType屬性值

7.消息提示Toast

Toast類的常用方法

8.列表組件 ListView和ListActivity

ListView類是Android程序開發中經常用到組件,該組件時必須與適配器配合使用,由適配器提供顯示樣式和顯示數據。

9. 滑動抽屜組件SlidingDraw

ListView類是Android程序開發中經常用到組件,該組件時必須與適配器配合使用,由適配器提供顯示樣式和顯示數據。
SlidingDraw類重要的XML屬性

SlidingDraw類的重要方法

三.中級控件

1.傳遞參數組件Intent

Intent是android系統一種運行時的綁定機制,在應用程序運行時連接兩個不同組件。在android 的應用程序中不管是頁面切換,還是傳遞數據,或是調用外部程序,都可能要用到Intent。Intent負責對應用中某次操作的動作、動作涉及數據、附加數據進行描述,Android則根據此Intent的描述,負責找到對應的組件,將 Intent傳遞給調用的組件,并完成組件的調用。

1.Activity頁面切換

Activity跳轉與傳遞參數值主要通過Intent類協助實現。在一個Activity頁面中啟動另一個Activity頁面的運行,是最簡單的Activity頁面切換方式。其步驟如下:
(1)首先創建一個Intent對象,其構造方法為:
  Intent intent = new Intent(當前Activity.this, 另一Activity.class);
(2)然后調用Activity的startActivity(intent)方法,切換到另一個Activity頁面。

2.應用Intent在Activity頁面之間傳遞數據

1、Bundle類
Bundle類是一個用于將字符串與某組件對象建立映射關系的組件。Bundle組件與Intent配合使用,可在不同的Activity之間傳遞數據。Bundle類的常用方法如下:
putString(String key, String value): 把字符串用“鍵-值”形式存放到Bundle對象中;
remove(String key):移除指定key的值;
getString(String key):獲取指定key的字符。

(1)在頁面Activity A端
創建Intent對象和Bundle對象
Intent intent = new Intent();
Bundle bundle = new Bundle();
為Intent指定切換頁面,用Bundle 存放"鍵-值"對數據
intent.setClass(MainActivity.this, secondActivity.class);
bundle.putString(“text”, txt.getText().toString());
將Bundle對象傳遞給Intent
intent.putExtras(bundle);

(2)在另一頁面Activity B端
從Intent中獲取Bundle對象
bunde = this.getIntent().getExtras();

從Bundle對象中按"鍵-值"對的鍵名獲取對應數據值
String str = bunde.getString(“text”);

2. 菜單Menu

一個菜單(Menu)由多個菜單選項組成,選擇一個菜單項就可以引發一個動作事件。
在Android系統中,菜單可以分為三類:選項菜單(Option Menu),上下文菜單(Context Menu)以及子菜單(Sub Menu)。

1.選項菜單(Option Menu)

選項菜單需要通過按下設備的Menu鍵來顯示。當按下設備上的Menu鍵后,在屏幕底部彈出一個菜單,這個菜單稱作選項菜單(OptionsMenu)。
Activity實現選項菜單的回調方法

2.菜單Menu
設計選項菜單需要用到Menu、MenuItem接口。一個Menu對象代表一個菜單,Menu對象中可以添加菜單項MenuItem對象,也可以添加子菜單SubMenu。
菜單Menu使用add(int groupId, int itemId, int order, CharSequence title) 方法添加一個菜單項。
add()方法中的四個參數,依次是:
(1)組別;
(2)Id,這個很重要,Android根據這個Id來確定不同的菜單;
(3)順序,哪個菜單項在前面由這個參數的大小決定;
(4)文本,菜單項的顯示文本。

3.創建選項菜單的步驟
創建選項菜單的步驟如下:
(1)重寫Activity的onCreateOptionMenu(Menu menu)方法,當菜單第一次被打開時調用;
(2)調用Menu的add( )方法添加菜單項(MenuItem);
(3),重寫Activity的onOptionsItemSelected(MenuItem item)方法,當菜單項(MenuItem)被選擇時來響應事件。

2.上下文菜單(Context Menu)

Android系統 的上下文菜單類似于 PC 上的右鍵菜單。當為一個視圖注冊了上下文菜單之后,長按(2 秒左右)這個視圖對象就會彈出一個浮動菜單,即上下文菜單。

創建一個上下文菜單的步驟如下:

  • 重寫Activity 的 onCreateContenxtMenu() 方法,調用 Menu 的 add 方法添加菜單項(MenuItem)。
  • 重寫 Activity 的 onContextItemSelected() 方法,響應上下文菜單菜單項的單擊事件。
  • 調用Activity 的 registerForContextMenu() 方法,為視圖注冊上下文菜單。
  • 3. 對話框

    對話框是一個有邊框、有標題欄的獨立存在的容器,在應用程序中經常使用對話框組件來進行人機交互。Android系統提供了四種常用對話框:
    AlertDialog:消息對話框;
    ProgressDialog:進度條對話框;
    DatePickerDialog:日期選擇對話框;
    TimePickerDialog:時間選擇對話框。

    1.消息對話框AlertDialog


    設計AlertDialog對話框的步驟如下:
    (1)用AlertDialog.Builder類創建對話框Builder對象
    Builder dialog=new AlertDialog.Builder(Context);
    (2)設置對話框的標題、圖標、提示信息內容、按鈕等
    dialog.setTitle(“普通對話框”);
    dialog.setIcon(R.drawable.icon1);
    dialog.setMessage(“一個簡單的提示對話框”) ;
    dialog.setPositiveButton(“確定”, new okClick()) ;
    3)創建并顯示AlertDialog對話框對象
    dialog.create();
    dialog.show();
    如果在對話框內部設置了按鈕,還需要對其設置事件監聽OnClickListener。

    2.進度條對話框ProgressDialog

    3. 日期選擇對話框和時間選擇對話框

    4.1 繪制幾何圖形

    1、畫布Canvas


    2、畫筆Paint
    畫筆Paint用來描述所繪制圖形的顏色、和風格,如線條寬度、顏色等信息。

    3、點到點的連線路徑Path
    當繪制由一些線段組成的圖形(如:三角形、四邊形等),需要用Path類來描述線段路徑。

    5. 后臺服務與系統服務調用

    5.1后臺服務Service

    Android系統的Service是一種類似于Activity的組件,但Service沒有用戶操作界面,也不能自己啟動,其主要作用是提供后臺服務調用。Service不像Activity那樣,當用戶關閉應用界面就停止運行,Service會一直在后臺運行,除非另有明確命令其停止。
    通常使用Service為應用程序提供一些只需在后臺運行的服務,或不需要界面的功能,例如,從Internet下載文件、控制Video播放器等。
    Service的生命周期中只有三個階段:onCreate, onStartCommand, onDestroy。


    通常Service要在一個Activity中啟動,調用Activity的startService(Intent)方法啟動Service。
    若要停止正在運行的Service,則調用Activity的stopService(Intent)方法關閉Service。
    方法startService()和stopService()均繼承于Activity及Service共同的父類android.content.Context。

    一個服務只能創建一次,銷毀一次,但可以開始多次,即onCreate()和onDestroy()方法只會被調用一次,而onStartCommand()方法可以被調用多次。后臺服務的具體操作一般應該放在onStartCommand()方法里面。如果Service已經啟動,當再次啟動Service時則不調用onCreate()而直接調用onStartCommand()。

    設計一個后臺服務的應用程序步驟:
    (1)創建Service的子類:
    編寫onCreate()方法,創建后臺服務;
    編寫onStartCommand()方法,啟動后臺服務;
    編寫onDestroy()方法,終止后臺服務,并刪除所有調用。
    (2)創建啟動和控制Service的Activity:
    創建Intent對象,建立Activity與Service的關聯;
    調用Activity的startService(Intent)方法啟動Service后臺服務;
    調用Activity的stopService(Intent)方法關閉Service后臺服務。
    (3)修改配置文件AndroidManifest.xml:
    在配置文件AndroidManifest.xml的標簽中添加如下代碼:

    5.2信息廣播機制Broadcast

    Broadcast是Android系統應用程序之間傳遞信息的一種機制。當系統之間需要傳遞某些信息時,不是通過諸如單擊按鈕之類組件來觸發事件,而是由系統自身通過系統調用來引發事件。這種系統調用是由BroadcastReceiver類的實現的,把這種系統調用稱為廣播。
    BroadcastReceiver也就是“廣播接收者”的意思,顧名思義,它就是用來接收來自系統和應用中的廣播信息。

    實現廣播和接收機制的步驟:
    (1)創建Intent對象,設置Intent對象的action屬性。這個action屬性是接收廣播數據的標識。注冊了相同action屬性的廣播接收器才能收到發送的廣播數據。
    Intent intent = new Intent();
      intent.setAction(“abc”);
    (2)編寫需要廣播的信息內容,將需要播發的信息封裝到Intent中,通過Activity或Service繼承其父類Context的sendBroadcast()方法將Intent廣播出去。intent.putExtra(“hello”, “這是廣播信息!”);
    sendBroadcast(intent);
    (3)編寫一個繼承BroadcastReceiver的子類作為廣播接收器,該對象是接收廣播信息并對信息進行處理的組件。在子類中要重寫接收廣播信息的onReceive()方法。
    class TestReceiver extends BroadcastReceiver
    {
    public void onReceive(Context context, Intent intent)
    {
    /* 接收廣播信息并對信息作出響應的代碼 */
    }
    }
    (4)在配置文件AndroidManifest.xml中注冊廣播接收類。





    (5)銷毀廣播接收器。
    Android系統在執行onReceive()方法時,會啟動一個程序計時器,在一定時間內,廣播接收器的實例會被銷毀。因此,廣播機制不適合傳遞大數據量的信息。

    為了識別Intent對象的action,有時在IntentFilter對象中設置Intent對象的action,而注冊廣播接收器的工作由registerReceiver()方法完成。
    registerReceiver(mBroadcast, filter)方法有兩個參數,其中參數mBroadcast是廣播接收器BroadcastReceiver對象,filter是IntentFilter對象。

    5.3 系統服務

    5.3.1 Android的系統服務

    5.3.2 系統通知服務Notification

    Notification是Android系統的一種通知服務,當手機來電、來短信、鬧鐘鈴聲時,在狀態欄顯示通知的圖標和文字,提示用戶處理。當拖動狀態欄時,可以查看這些信息。
    Notification提供了聲音、振動等屬性

    系統通知服務Notification由系統通知管理對象NotificationManager進行管理及發布通知。由getSystemService(NOTIFICATION_SERVICE)創建NotificationManager對象,
     NotificationManager n_Manager =
    NotificationManager)getSystemService(NOTIFICATION_SERVICE);
    NotificationManager對象通過notify(int id, Notification notification) 方法把通知發送到狀態欄。通過cancelAll() 方法取消以前顯示的所有通知。

    5.3.3 系統定時服務AlarmManager



    6.1 Web視圖

    6.1.1 瀏覽器引擎WebKit

    WebKit是一個開源的瀏覽器引擎。Webkit內核具有非常好的網頁解析機制,很多應用系統都使用WebKit作瀏覽器的內核。
    Android對 Webkit作了進一步的封裝,并提供了豐富的API。Android平臺的WebKit模塊由Java層和WebKit庫兩個部分組成,Java層負責與Android應用程序進行通信,而WebKit類庫負責實際的網頁排版處理。
    WebKit包中的幾個重要類

    6.1.2 Web視圖對象

    1、WebView類
    WebView類是WebKit模塊Java層的視圖類,所有需要使用Web瀏覽功能的Android應用程序都要創建該視圖對象,用于顯示和處理請求的網絡資源。
    WebKit模塊支持HTTP、HTTPS、FTP以及javascript請求。WebView作為應用程序的UI接口,為用戶提供了一系列的網頁瀏覽、用戶交互接口,客戶程序通過這些接口訪問WebKit核心代碼。
    WebView類的常用方法

    2、使用WebView的說明
    1)設置WebView基本信息:
    如果訪問的頁面中有Javascript,則webview必須設置支持Javascript。
    webview.getSettings().setJavaScriptEnabled(true);
    觸摸焦點起作用
    requestFocus();
    取消滾動條
    this.setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY);

    (2)設置WevView要顯示的網頁:
    互聯網用:webView.loadUrl(“http://www.google.com”);
    本地文件用:webView.loadUrl(“file:///android_asset/XX.html”); 本地文件要存放在項目的assets目錄中

    3)用webview點擊鏈接看了很多頁面以后,如果不做任何處理,點擊系統“Back”鍵,瀏覽器會調用finish()而結束自身的運行;如果希望瀏覽的網頁回退而不是退出瀏覽器,需要在當前Activity中覆蓋Activity類的onKeyDown(int keyCoder,KeyEvent event)方法處理該Back事件。

    6.1.3 調用JavaScript

    (1) WebSteeings類

    (2)WebViewClient類
    WebViewClient 類用于對WebView對象中各種事件的處理,通過重寫這些提供的事件方法,可以對WebView對象在頁面載入、資源載入、頁面訪問錯誤等情況發生時進行各種操作。

    (3)WebChromeClient類
     WebChromeClient是輔助WebView處理JavaScript對話框、網站的標題、網站的圖標、加載進度條等操作的類。

    6.2 基于TCP協議網絡程序設計

    對話框是一個有邊框、有標題欄的獨立存在的容器,在應用程序中經常使用對話框組件來進行人機交互。Android系統提供了四種常用對話框:
    AlertDialog:消息對話框;
    ProgressDialog:進度條對話框;
    DatePickerDialog:日期選擇對話框;
    TimePickerDialog:時間選擇對話框。

    四.案例


    1.hello

    代碼如下(示例):

    xml文件

    <?xml version="1.0" encoding="utf-8"?> <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"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World!" /></LinearLayout>)

    Java文件

    package com.example.phone;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);} }

    2.密碼驗證程序

    Java文件

    class mClick implements OnClickListener {public void onClick(View v){String passwd;passwd=edit.getText().toString(); if(passwd.equals("abc123")) txt2.setText("歡迎進入快樂大本營!"); elsetxt2.setText("非法用戶,請立刻離開!"); }}}

    3.Toast的四種方式

    Java文件

    package com.example.phones; //?大大大的問題。 //四種哦!!! import androidx.appcompat.app.AppCompatActivity;import android.content.Intent; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Switch; import android.widget.TextView; import android.widget.Toast;public class ToastActivity extends AppCompatActivity {private Button btn1,btn2,btn3,btn4;private LinearLayout toastView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_toast);btn1=findViewById(R.id.btn_1);btn2=findViewById(R.id.btn_2);btn3=findViewById(R.id.btn_3);btn4=findViewById(R.id.btn_4);Myclick click=new Myclick();btn1.setOnClickListener(click);btn2.setOnClickListener(click);btn3.setOnClickListener(click);btn4.setOnClickListener(click);}private class Myclick implements View.OnClickListener{@Overridepublic void onClick(View v) {//switch這個要記好!!getApplicationContext(),是content的!!switch(v.getId()){case R.id.btn_1:Toast.makeText(ToastActivity.this, "普通的Toast!!", Toast.LENGTH_SHORT).show();break;case R.id.btn_2:Toast toast=Toast.makeText(getApplicationContext(),"中間的toast!!",Toast.LENGTH_LONG);// toast.setText("中間的toast!!"); // toast.setDuration(Toast.LENGTH_LONG);toast.setGravity(Gravity.CENTER,0,0);toast.show();break;case R.id.btn_3://toast的makeText方法!!!Toast toast1=Toast.makeText(ToastActivity.this,"自定義的toast!!",Toast.LENGTH_LONG);toast1.setGravity(Gravity.CENTER,0,80);toastView= (LinearLayout) toast1.getView();// 獲取一個頁面 // View view= LayoutInflater.from(ToastActivity.this).inflate(R.layout.zidingyitoast,null);ImageView imageView=new ImageView(ToastActivity.this); // TextView textView=findViewById(R.id.tv_1);imageView.setImageResource(R.drawable.ic_launcher_foreground); // textView.setText("java的toast");toastView.addView(imageView,0);toast1.show();break;case R.id.btn_4://自己寫一個toast,可以復用!!Utiltoast.showmsg(getApplicationContext(),"奇跡哦");break;}}} } //Utiltoast,自寫的toast package com.example.phones;import android.content.Context; import android.view.Gravity; import android.widget.Toast;public class Utiltoast {public static Toast mtoast;public static void showmsg(Context context,String msg){if (mtoast==null){mtoast=Toast.makeText(context,msg,Toast.LENGTH_LONG);mtoast.setGravity(Gravity.CENTER,0,0);}else {mtoast.setText(msg);}mtoast.show();} }

    4.ImageSwitch(失敗的,有參考價值)

    Java文件

    package com.example.phones;import androidx.appcompat.app.AppCompatActivity;import android.database.DataSetObserver; import android.os.Bundle; import android.provider.MediaStore; import android.view.View; import android.view.ViewGroup; import android.view.animation.AnimationUtils; import android.widget.AdapterView; import android.widget.Button; import android.widget.Gallery; import android.widget.ImageSwitcher; import android.widget.ImageView; import android.widget.SpinnerAdapter; import android.widget.ViewSwitcher;public class Imageswith extends AppCompatActivity {ImageView imageView;Button button_last,button_next;Gallery gallery;ImageSwitcher imageSwitcher;private int[] Imgs={R.drawable.ic_launcher_background,R.drawable.ic_launcher_foreground,R.mipmap.haokan,R.mipmap.haokan2,R.mipmap.haokan3,};int index=1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_imageswith);imageView=findViewById(R.id.image);button_last = findViewById(R.id.btn_last);button_next = findViewById(R.id.btn_next);gallery = findViewById(R.id.gallery1);imageSwitcher = findViewById(R.id.imageswitcher);button_next.setOnClickListener( new click());button_last.setOnClickListener( new click());imageSwitcher.setFactory(new viewFactory());imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));imageSwitcher.setImageResource(R.mipmap.haokan);gallery.setOnItemSelectedListener( new OnitemSelectedListener());gallery.setSpacing(10);gallery.setAdapter(new baseAdapter());}private class click implements View.OnClickListener {@Overridepublic void onClick(View v) {if (v == button_last) {if (index > 0 && index < Imgs.length) {index--;imageView.setImageResource(Imgs[index]);}}if (v == button_next) {if (index >=0 && index < Imgs.length-1) {index++;imageView.setImageResource(Imgs[index]);}}}}private class viewFactory implements ViewSwitcher.ViewFactory {@Overridepublic View makeView() {ImageView imageView;imageView = new ImageView(Imageswith.this);imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);return imageView;}}private class OnitemSelectedListener implements AdapterView.OnItemSelectedListener {@Overridepublic void onItemSelected(AdapterView<?> parent, View view, int position, long id) {imageSwitcher.setImageResource((int) gallery.getItemAtPosition(position));}@Overridepublic void onNothingSelected(AdapterView<?> parent) {}}private class baseAdapter implements SpinnerAdapter {@Overridepublic void registerDataSetObserver(DataSetObserver observer) {}@Overridepublic void unregisterDataSetObserver(DataSetObserver observer) {}@Overridepublic int getCount() {return Imgs.length;}@Overridepublic Object getItem(int position) {return null;}@Overridepublic long getItemId(int position) {return Imgs[position];}@Overridepublic boolean hasStableIds() {return false;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ImageView imageView;imageView = new ImageView(Imageswith.this);imageView.setImageResource(Imgs[position]);imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);imageView.setLayoutParams(new Gallery.LayoutParams(60,60));return imageView;}@Overridepublic int getItemViewType(int position) {return 0;}@Overridepublic int getViewTypeCount() {return 0;}@Overridepublic boolean isEmpty() {return false;}@Overridepublic View getDropDownView(int position, View convertView, ViewGroup parent) {return null;}} }

    XML文件

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".Imageswith"><LinearLayoutandroid:gravity="center"android:layout_width="match_parent"android:layout_height="wrap_content"><ImageViewandroid:id="@+id/image"android:layout_width="100dp"android:layout_height="100dp"android:src="@drawable/ic_launcher_background"app:srcCompat="@mipmap/haokan" /></LinearLayout><LinearLayoutandroid:gravity="center"android:layout_width="match_parent"android:orientation="vertical"android:layout_height="wrap_content"><Galleryandroid:id="@+id/gallery1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:spacing="10dp"/><ImageSwitcherandroid:id="@+id/imageswitcher"android:layout_width="wrap_content"android:layout_height="240dp"/></LinearLayout><LinearLayoutandroid:gravity="center"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="50dp"android:orientation="horizontal"><Buttonandroid:id="@+id/btn_last"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginRight="30dp"android:text="上一頁"/><Buttonandroid:id="@+id/btn_next"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="下一頁" /></LinearLayout> </LinearLayout>

    5.WebView(需要聯網)

    Java文件

    package com.example.phones; //Webview的訪問 import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity;import android.graphics.Bitmap; import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.webkit.WebChromeClient; import android.webkit.WebResourceRequest; import android.webkit.WebView; import android.webkit.WebViewClient;public class WebViewActivity extends AppCompatActivity {private WebView wv;@RequiresApi(api = Build.VERSION_CODES.O)@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_web_view);wv=findViewById(R.id.mv);wv.getSettings().setJavaScriptEnabled(true);wv.loadUrl("https://passport2.chaoxing.com"); // wv.addJavascriptInterface();//1.第一種加載方式assets文件下的html//wv.loadUrl("file:///android_asset/text.html");//2.第二種加載方式網頁,訪問網絡資源//wv.loadDataWithBaseURL();//wv.getSettings().setJavaScriptEnabled(true);//直接在頁面加載,可以很爽。//wv.setWebViewClient(new myWebView());//wv.setWebChromeClient(new myChrome());//wv.loadUrl("https://www.runoob.com");//wv.loadDataWithBaseURL();}class myWebView extends WebViewClient{//在本頁面加載頁面!!@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)@Overridepublic boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {view.loadUrl(request.getUrl().toString());return true;}//顯示在logcat@RequiresApi(api = Build.VERSION_CODES.KITKAT)@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {super.onPageStarted(view, url, favicon);Log.d("WebView","onPageStarted...");wv.evaluateJavascript("javascript:alert('確定?')",null);}@RequiresApi(api = Build.VERSION_CODES.KITKAT)@Overridepublic void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);Log.d("WebView","onPageFinished....");//wv.loadUrl("javascript:alert('確定?')");}}//可以返回上一個頁面@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if(keyCode==KeyEvent.KEYCODE_BACK&&wv.canGoBack()){wv.goBack();return true;}return super.onKeyDown(keyCode, event);}private class myChrome extends WebChromeClient {//進度條????@Overridepublic void onProgressChanged(WebView view, int newProgress) {super.onProgressChanged(view, newProgress);}//標題隨之改變@Overridepublic void onReceivedTitle(WebView view, String title) {super.onReceivedTitle(view, title);setTitle(title);}} }

    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"><WebViewandroid:id="@+id/mv"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout>

    6.MainActivity(模板)

    Java文件

    package com.example.phones;import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity implements View.OnClickListener {private Button btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn10, btn11, btn12, btn13, btn14, btn15, btn16, btn17;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);setTitle("RadioGroup_Activity");btn1 = findViewById(R.id.button1);btn2 = findViewById(R.id.button2);btn3 = findViewById(R.id.button3);btn4 = findViewById(R.id.button4);btn5 = findViewById(R.id.button5);btn6 = findViewById(R.id.button6);btn7 = findViewById(R.id.button7);btn8 = findViewById(R.id.button8);btn9 = findViewById(R.id.button9);btn10 = findViewById(R.id.button10);btn11 = findViewById(R.id.button11);btn12 = findViewById(R.id.button12);btn13 = findViewById(R.id.button13);btn14 = findViewById(R.id.button14);btn15 = findViewById(R.id.button15);btn16 = findViewById(R.id.button16);btn17 = findViewById(R.id.button17);btn1.setOnClickListener(this);btn2.setOnClickListener(this);btn3.setOnClickListener(this);btn4.setOnClickListener(this);btn5.setOnClickListener(this);//setclik(); // btn.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View v) { // // } // });}@Overridepublic void onClick(View v) {Intent intent = null;switch (v.getId()) {case R.id.button1:intent = new Intent(MainActivity.this, AlphaActivity.class);Toast.makeText(MainActivity.this, "歡迎圖形", Toast.LENGTH_SHORT).show();break;case R.id.button2:intent = new Intent(MainActivity.this, WebViewActivity.class);Toast.makeText(MainActivity.this, "歡迎webView", Toast.LENGTH_SHORT).show();break;case R.id.button3:intent = new Intent(MainActivity.this, ToastActivity.class);Toast.makeText(MainActivity.this, "歡迎toast", Toast.LENGTH_SHORT).show();break; // case R.id.button4: // intent=new Intent(MainActivity.this, FragmentActivity.class); // Toast.makeText(MainActivity.this, "歡迎Fragment", Toast.LENGTH_SHORT).show(); break;case R.id.button5:intent = new Intent(MainActivity.this, Imageswith.class);Toast.makeText(MainActivity.this, "歡迎Imageswith", Toast.LENGTH_SHORT).show();break;}startActivity(intent);}// private void setclik() { // myclick clicl=new myclick(); // btn1.setOnClickListener(clicl); // btn2.setOnClickListener(clicl); // btn3.setOnClickListener(clicl); // btn4.setOnClickListener(clicl); // } // // public class myclick implements View.OnClickListener{ // Intent intent=null; // @Override // public void onClick(View v) { // switch (v.getId()){ // case R.id.button1: // intent=new Intent(MainActivity.this,AlphaActivity.class); // Toast.makeText(MainActivity.this, "歡迎圖形", Toast.LENGTH_SHORT).show(); // break; // case R.id.button2: // intent=new Intent(MainActivity.this,WebViewActivity.class); // Toast.makeText(MainActivity.this, "歡迎webView", Toast.LENGTH_SHORT).show(); // break; // case R.id.button3: // intent=new Intent(MainActivity.this,ToastActivity.class); // Toast.makeText(MainActivity.this, "歡迎toast", Toast.LENGTH_SHORT).show(); // break; // case R.id.button4: // intent=new Intent(MainActivity.this, FragmentActivity.class); // Toast.makeText(MainActivity.this, "歡迎Fragment", Toast.LENGTH_SHORT).show(); // break; // } // startActivity(intent); // } // } }

    XML文件

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/button1"android:layout_width="match_parent"android:layout_height="37dp"android:text="屬性動畫演示" /><Buttonandroid:id="@+id/button2"android:layout_width="match_parent"android:layout_height="38dp"android:text="webView" /><Buttonandroid:id="@+id/button3"android:layout_width="match_parent"android:layout_height="36dp"android:text="Toast" /><Buttonandroid:id="@+id/button4"android:layout_width="match_parent"android:layout_height="34dp"android:text="Fragment" /><Buttonandroid:id="@+id/button5"android:layout_width="match_parent"android:layout_height="38dp"android:text="Imageswith" /><Buttonandroid:id="@+id/button6"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button" /><Buttonandroid:id="@+id/button7"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button" /><Buttonandroid:id="@+id/button8"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button" /><Buttonandroid:id="@+id/button9"android:layout_width="match_parent"android:layout_height="35dp"android:text="Button" /><Buttonandroid:id="@+id/button10"android:layout_width="match_parent"android:layout_height="36dp"android:text="Button" /><Buttonandroid:id="@+id/button11"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button" /><Buttonandroid:id="@+id/button12"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button" /><Buttonandroid:id="@+id/button13"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button" /><Buttonandroid:id="@+id/button14"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button" /><Buttonandroid:id="@+id/button15"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button" /><Buttonandroid:id="@+id/button16"android:layout_width="match_parent"android:layout_height="43dp"android:text="Button" /><Buttonandroid:id="@+id/button17"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button" /><Buttonandroid:id="@+id/button18"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button" /> </LinearLayout>

    7.密碼驗證程序

    Java文件

    class mClick implements OnClickListener {public void onClick(View v){String passwd;passwd=edit.getText().toString(); if(passwd.equals("abc123")) txt2.setText("歡迎進入快樂大本營!"); elsetxt2.setText("非法用戶,請立刻離開!"); }}}

    8.動畫伸縮,旋轉,擴大

    Java文件

    package com.example.phones;import androidx.appcompat.app.AppCompatActivity;import android.animation.ObjectAnimator; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView;public class AlphaActivity extends AppCompatActivity {Button rotateButton,alphaButton,scaleButton;ImageView img;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_alpha);img = (ImageView)findViewById(R.id.imageView);rotateButton = (Button)findViewById(R.id.button1);alphaButton = (Button)findViewById(R.id.button2);scaleButton = (Button)findViewById(R.id.button3);rotateButton.setOnClickListener(new mClick());alphaButton.setOnClickListener(new mClick());scaleButton.setOnClickListener(new mClick());}public class mClick implements View.OnClickListener{@Overridepublic void onClick(View v) {if(v == rotateButton) {ObjectAnimator animator = ObjectAnimator.ofFloat(img, "rotation", 0.0F, 360.0F);animator.setDuration(1000);animator.start();}else if(v == alphaButton){ObjectAnimator animator = ObjectAnimator.ofFloat(img, "alpha",1.0F, 0.0F, 1.0F);animator.setDuration(3000);animator.start();}else if(v == scaleButton){ObjectAnimator animator = ObjectAnimator.ofFloat(img, "ScaleY", 1.0F, 0.5F, 1.0F);animator.setDuration(5000);animator.start();}}} }

    XML文件

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="屬性動畫演示"android:id="@+id/textView"android:textSize="28sp"android:layout_alignParentTop="true"android:layout_centerHorizontal="true"android:layout_gravity="center_horizontal" /><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentEnd="true"android:layout_gravity="center_horizontal"android:layout_alignParentRight="true"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="旋轉"android:id="@+id/button1"android:layout_gravity="bottom"android:textSize="18sp"android:layout_below="@+id/textView"android:layout_alignParentStart="true"android:layout_alignParentLeft="true" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="淡入淡出"android:id="@+id/button2"android:layout_gravity="bottom"android:textSize="18sp"android:layout_below="@+id/button1"android:layout_alignParentLeft="true" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="縮放"android:id="@+id/button3"android:layout_gravity="bottom"android:textSize="18sp"android:layout_below="@+id/button2"android:layout_alignParentLeft="true" /></LinearLayout><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:id="@+id/imageView"android:layout_centerVertical="true"android:layout_centerHorizontal="true"android:scaleType="centerCrop"android:layout_gravity="center_horizontal"android:src="@drawable/ic_launcher_foreground" /></LinearLayout></RelativeLayout>

    9.長按條目激活上下文菜單

    Java文件

    package com.example.myapplication2;import android.os.Bundle; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {TextView txt1, txt2, txt3;private static final int item1 = Menu.FIRST;private static final int item2 = Menu.FIRST+1;private static final int item3 = Menu.FIRST+2;String str[] = {" 令狐沖", "楊 過", "蕭 峰 " };@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);txt1=(TextView)findViewById(R.id.textView1);txt2=(TextView)findViewById(R.id.textView2);txt3=(TextView)findViewById(R.id.textView3);txt1.setText(str[0].toString());txt2.setText(str[1].toString());txt3.setText(str[2].toString());registerForContextMenu(txt1);registerForContextMenu(txt2);registerForContextMenu(txt3);}//上下文菜單,本例會通過長按條目激活上下文菜單@Overridepublic void onCreateContextMenu(ContextMenu menu, View view,ContextMenuInfo menuInfo) {menu.setHeaderTitle("人物簡介");//添加菜單項menu.add(0, item1, 0, "武功");menu.add(0, item2, 0, "戰斗力");menu.add(0, item3, 0, "經典語錄");}//菜單單擊響應@Overridepublic boolean onContextItemSelected(MenuItem item){//獲取當前被選擇的菜單項的信息switch(item.getItemId()){case item1://在這里添加處理代碼break;case item2://在這里添加處理代碼break;case item3://在這里添加處理代碼break;}return true;} } <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="30dp"android:text="Hello World!"android:layout_margin="5dp"/><TextViewandroid:id="@+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="30dp"android:text="我愛"android:layout_margin="5dp"/><TextViewandroid:id="@+id/textView3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="30dp"android:text="Android"android:layout_margin="5dp"/></LinearLayout>

    10.菜單項

    Java文件

    package com.example.myapplication;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {TextView txt;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);txt = (TextView)findViewById(R.id.TextView1);}@Overridepublic boolean onCreateOptionsMenu(Menu menu){// 調用父類方法來加入系統菜單super.onCreateOptionsMenu(menu);// 添加菜單項menu.add(1, //組號1, //唯一的ID號1, //排序號"菜單項1"); //標題menu.add( 1, 2, 2, "菜單項2");menu.add( 1, 3, 3, "菜單項3");menu.add( 1, 4, 4, "菜單項4");return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item){String title = "選擇了" + item.getTitle().toString();switch (item.getItemId()){ //響應每個菜單項(通過菜單項的ID)case 1:txt.setText(title);break;case 2:txt.setText(title);break;case 3:txt.setText(title);break;case 4:txt.setText(title);break;default://對沒有處理的事件,交給父類來處理return super.onOptionsItemSelected(item);}return true;} }

    XML文件

    class mClick implements OnClickListener {public void onClick(View v){String passwd;passwd=edit.getText().toString(); if(passwd.equals("abc123")) txt2.setText("歡迎進入快樂大本營!"); elsetxt2.setText("非法用戶,請立刻離開!"); }}}

    9.fargment

    MainActivity文件

    package com.example.myfragment;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);} }

    BlankFragment文件

    package com.example.myfragment;import android.content.Context; import android.net.Uri; import android.os.Bundle;import androidx.fragment.app.Fragment;import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView;public class BlankFragment extends Fragment {private TextView tv1;private Button btn;private View view;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// Inflate the layout for this fragmentif (view==null){view = inflater.inflate(R.layout.fragment_blank, container, false);}tv1=view.findViewById(R.id.tv_2);btn=view.findViewById(R.id.btn);btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {tv1.setText("I am fine");}});return view;}}

    BlankFragment1文件

    package com.example.myfragment;import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView;import androidx.fragment.app.Fragment;public class BlankFragment1 extends Fragment {private TextView tv1;private Button btn;private View view;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// Inflate the layout for this fragmentif (view==null){view = inflater.inflate(R.layout.fragment_blank, container, false);}tv1=view.findViewById(R.id.tv_2);btn=view.findViewById(R.id.btn);btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {tv1.setText("I am fine");}});return view;}}

    activity_mainXML文件

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><fragment android:name="com.example.myfragment.BlankFragment"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:id="@+id/fg_1"/><fragment android:name="com.example.myfragment.BlankFragment1"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:id="@+id/fg_2"/> </LinearLayout>

    fragment_blankXML文件

    <?xml version="1.0" encoding="utf-8"?> <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"><!-- TODO: Update blank fragment layout --><Buttonandroid:id="@+id/btn"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="交流吧!!"/><TextViewandroid:id="@+id/tv_2"android:layout_marginBottom="30dp"android:layout_width="match_parent"android:layout_height="40dp"android:text="How are you?"android:textSize="30dp"/></LinearLayout>

    11.myViewpager

    Java文件

    package com.example.myviewpager;import androidx.appcompat.app.AppCompatActivity; import androidx.viewpager.widget.ViewPager;import android.os.Bundle; import android.text.Layout; import android.view.LayoutInflater; import android.view.View;import java.util.ArrayList; import java.util.List;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);LayoutInflater If=getLayoutInflater().from(this);View view1=If.inflate(R.layout.layout,null);View view2=If.inflate(R.layout.layout1,null);View view3=If.inflate(R.layout.layout2,null);List<View> listview=new ArrayList<>();listview.add(view1);listview.add(view2);listview.add(view3);ViewPager viewPager=findViewById(R.id.vp);viewPager.setAdapter(new MyAdapter(listview));} }

    Java文件

    package com.example.myviewpager;import android.view.View; import android.view.ViewGroup;import androidx.annotation.NonNull; import androidx.viewpager.widget.PagerAdapter;import java.util.List;public class MyAdapter extends PagerAdapter {private List<View> mlistview;public MyAdapter(List<View> listview){this.mlistview=listview;}@Overridepublic int getCount() {return mlistview.size();}@Overridepublic boolean isViewFromObject(@NonNull View view, @NonNull Object object) {return view==object;}@NonNull@Overridepublic Object instantiateItem(@NonNull ViewGroup container, int position) {container.addView(mlistview.get(position),0);return mlistview.get(position);}@Overridepublic void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {container.removeView(mlistview.get(position));} }

    XML文件

    <?xml version="1.0" encoding="utf-8"?> <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"tools:context=".MainActivity"><androidx.viewpager.widget.ViewPagerandroid:id="@+id/vp"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout>

    XML文件

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:background="@color/colorAccent"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/tv_1"android:layout_width="match_parent"android:layout_height="100dp"android:text="畫面1"android:gravity="center"android:textSize="50dp"/></LinearLayout>

    12.myViewpager2

    Java文件

    package com.example.myviewpagerand;import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager.widget.ViewPager; import androidx.viewpager2.widget.ViewPager2;import android.os.Bundle;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ViewPager2 vip=findViewById(R.id.vp);VpagerAdapter myadapter=new VpagerAdapter();vip.setAdapter(myadapter);} }

    Java文件

    package com.example.myviewpagerand;import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView;import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView;import java.util.ArrayList; import java.util.List;class VpagerAdapter extends RecyclerView.Adapter<VpagerAdapter.VpHolder>{private List<String> title=new ArrayList<>();public VpagerAdapter(){title.add("失所");title.add("神說");title.add("看破");title.add("失火");title.add("折磨");title.add("自我");title.add("無果");title.add("得過");title.add("執著");}@NonNull@Overridepublic VpHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {return new VpHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.iteam,parent,false));}@Overridepublic void onBindViewHolder(@NonNull VpHolder holder, int position) {holder.tv.setText(title.get(position));}@Overridepublic int getItemCount() {return 3;}class VpHolder extends RecyclerView.ViewHolder {TextView tv;LinearLayout llay;public VpHolder(@NonNull View itemView) {super(itemView);llay=itemView.findViewById(R.id.container);tv=itemView.findViewById(R.id.tv_1);}} }

    XML文件()

    <?xml version="1.0" encoding="utf-8"?> <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"tools:context=".MainActivity"><androidx.viewpager2.widget.ViewPager2android:id="@+id/vp"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/colorPrimaryDark"></androidx.viewpager2.widget.ViewPager2> </LinearLayout>

    XML文件()

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:id="@+id/container"android:layout_height="match_parent"><TextViewandroid:id="@+id/tv_1"android:layout_width="match_parent"android:layout_height="match_parent"android:textColor="#961515"android:gravity="center"android:text="唯我中華!!"android:textSize="50dp"/></LinearLayout>

    13.長按條目激活上下文菜單

    Java文件

    class mClick implements OnClickListener {public void onClick(View v){String passwd;passwd=edit.getText().toString(); if(passwd.equals("abc123")) txt2.setText("歡迎進入快樂大本營!"); elsetxt2.setText("非法用戶,請立刻離開!"); }}}

    XML文件

    class mClick implements OnClickListener {public void onClick(View v){String passwd;passwd=edit.getText().toString(); if(passwd.equals("abc123")) txt2.setText("歡迎進入快樂大本營!"); elsetxt2.setText("非法用戶,請立刻離開!"); }}}

    總結

    還有待補充

    總結

    以上是生活随笔為你收集整理的Android--初级的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。