目錄
- 0 實驗環境
- 1 界面展示
- 2 功能說明
- 3 設計原理
- 4 核心代碼
- 4.1 新建一個Activity類leimuActivity.java
- 4.2 在res/layout中增加一個布局組態檔leimu_tab.xml
- 4.3 修改AndroidManifest.xml,將leimuActivity添加進去
- 4.4 在res/values/strings中增加所用的字串名稱
- 4.5 修改RecyclerViewAdapter.java
- 5 代碼倉庫
- 6 總結
0 實驗環境
在Android Studio中進行有關代碼的撰寫和界面效果展示
1 界面展示

2 功能說明
(1)在上次微信界面設計的基礎上,對有recycleView的頁面進行點擊跳轉設計;
比如,某一tab頁是聯系人串列,則點擊某一行能跳轉到聯系人詳情頁面,
(2)在進行跳轉事件設計時,還需實作跳轉回傳;
注:只實作了一個聯系人的詳情頁面設計!
3 設計原理
Android studio活動在其生命周期的四種狀態分別是:
- 運行狀態
- 暫停狀態
- 停止狀態
- 銷毀狀態
Activity與生命周期的有關的幾個方法:
- onCreate方法:創建頁面,把頁面上的各個元素加載到記憶體中,
- onStart方法:開始頁面,把頁面顯示在螢屏上,
- onResume方法:恢復頁面,讓頁面在螢屏上活動起來,例如開機影片,開始任務,
- onPause方法:暫停頁面,讓頁面在螢屏上的動作停下來,
- onStop方法:停止頁面,把頁面從記憶體上撤下來,
- onDestroy方法,銷毀頁面,把頁面琮記憶體中清除掉,
- onRestart方法,重新加載記憶體中的頁面資料,

Task是一個存放Activity的一個堆疊,遵循先進后出的原則,分有壓堆疊(進堆疊)和盤堆疊(出堆疊)兩個操作,Activity都會作為元素存放在Task里面,遵循先進后出的原則,每運行一個Activity都會將此Activity壓堆疊,從第一個運行Activity中跳轉到第二個Activity,第二個Activity會壓堆疊到第一個Activity的頂部,然后把運行在第二個Activity、第三個、第四個等依次類推,如果在跳轉Activity之前當前的Activity沒有執行finish()方法,此Activity就不會在Task中被銷毀,
如果要在兩Activity之間傳遞資訊,可以使用bundle引數,
4 核心代碼
4.1 新建一個Activity類leimuActivity.java
用于聯系人詳情頁面的初始化及跳轉回傳事件的監聽,當前的Activity的銷毀
package com.example.mychat__recycleview;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
public class leimuActivity extends AppCompatActivity {
//好友名字
private TextView friend_name;
//好友資訊
private TextView friend_info;
//好友照片
private ImageView friend_pic;
//回傳上個頁面按鈕
private Button btn_back;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.leimu_tab);
init();
setListeners();
}
public void init() {
friend_name = (TextView) findViewById(R.id.friend_name);
friend_info = (TextView) findViewById(R.id.friend_info);
friend_pic = (ImageView) findViewById(R.id.friend_pic);
btn_back = (Button) findViewById(R.id.btn_back);
}
private void setListeners() {
btn_back.setOnClickListener(backMain);
}
private Button.OnClickListener backMain = new Button.OnClickListener() {
@Override
public void onClick(View arg0) {
leimuActivity.this.finish();
}
};
}
4.2 在res/layout中增加一個布局組態檔leimu_tab.xml
用于聯系人詳情界面的UI設計
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:background="@color/light_blue"
android:orientation="vertical">
<TextView
android:id="@+id/friend_name"
android:layout_width="match_parent"
android:layout_height="15dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="@color/ivory"
android:fontFamily="@font/huawencaiyun"
android:gravity="center"
android:text="雷姆"
android:textColor="@color/blue"
android:textSize="30sp" />
<TextView
android:id="@+id/friend_info"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_weight="1"
android:layout_margin="10dp"
android:text=" 雷姆,輕小說《Re:從零開始的異世界生活》及其衍生作品的主要角色,在羅茲沃爾的宅邸中一手擔當全部雜務的雙胞胎女仆中的妹妹,小時候家人被魔女教所殺,姐姐角被斬斷,從而憎恨魔女教,初識昴因其身上有魔女氣味不待見昴,之后解開誤會被昴拯救,認定昴是她的英雄,一心一意的相信并照顧昴,看似毒舌冷漠,其實內心很堅強,很溫柔,"
android:fontFamily="@font/huawenxingkai"
android:textSize="22sp" />
<ImageView
android:id="@+id/friend_pic"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_weight="1"
app:srcCompat="@drawable/leimu" />
<Button
android:id="@+id/btn_back"
android:layout_width="100dp"
android:layout_height="5dp"
android:layout_gravity="center"
android:layout_weight="1"
android:alpha="0.5"
android:text="回傳"
android:textColor="#000000"
android:textSize="18sp" />
</LinearLayout>

4.3 修改AndroidManifest.xml,將leimuActivity添加進去
用于新建的Activity手動注冊
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mychat__recycleview">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.MyChat__RecycleView">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".leimuActivity"
android:label="@string/tab_name">
</activity>
</application>
</manifest>
4.4 在res/values/strings中增加所用的字串名稱
用來存放用到的一些字串名稱,便于之后的直接修改
<resources>
<string name="app_name">MyChat_RecycleView</string>
<string name="tab_name">雷姆</string>
</resources>
4.5 修改RecyclerViewAdapter.java
主要是onBindViewHolder方法中重寫onClick方法對聯系人串列的點擊事件(跳轉事件),并創建一個新的Activity頁面
@Override
public void onBindViewHolder(@NonNull Myviewholder holder, int position) {
holder.counter.setText(position + 1 + " ");
holder.nickname.setText(mList.get(position));
holder.personalized_signature.setText(nList.get(position));
//實作對點擊item的事件函式
final String content = mList.get(position);
holder.itemView.setContentDescription(content);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "您點擊的聯系人是:" + content, Toast.LENGTH_SHORT).show();
//跳轉到好友詳情頁面
Intent intent = new Intent();
intent.setClass(context,leimuActivity.class);
context.startActivity(intent);
}
});
5 代碼倉庫
具體代碼已上傳至gitee代碼倉庫
6 總結
(1)在上次微信界面設計的基礎上,對有recycleView的頁面進行點擊跳轉設計;
比如,某一tab頁是聯系人串列,則點擊某一行能跳轉到聯系人詳情頁面,
(2)在進行跳轉事件設計時,還需實作跳轉回傳;
后續會繼續更新有關Android設計的內容!
(注:第17次發文,如有錯誤和疑問,歡迎在評論區指出!)
——2021.10.24
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/335191.html
標籤:其他
上一篇:手機訊息推送方案綜述
