Android連載12-完善新聞app內容區域

来源:https://www.cnblogs.com/ruigege0000/archive/2020/05/21/12927431.html
-Advertisement-
Play Games

1.這裡編寫一個類用於開啟活動,首先在onCreateView()方法中載入了我們剛剛創建的news_content_frag佈局,這個沒什麼好解釋的,接下來又提供了一個refresh()方法,這個方法就是用於將新聞的標題和內容顯示在界面上的。可以看到,這裡通過findViewById()方法分別獲 ...


1.這裡編寫一個類用於開啟活動,首先在onCreateView()方法中載入了我們剛剛創建的news_content_frag佈局,這個沒什麼好解釋的,接下來又提供了一個refresh()方法,這個方法就是用於將新聞的標題和內容顯示在界面上的。可以看到,這裡通過findViewById()方法分別獲取到新聞的標題和內容控制項,然後將方法傳遞進來的參數​設置進去。

 

package com.example.fragmentbestpractice;

​

import android.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.TextView;

​

public class NewsContentFragment extends Fragment{

  private View view;

 

  @Override

  public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {

    view = inflater.inflate(R.layout.news_content_frag, container,false);

    return view;

  }

 

  public void refresh(String newsTitle,String newsContent) {

    View visibilityLayout = view.findViewById(R.id.visibility_layout);

    visibilityLayout.setVisibility(View.VISIBLE);

    TextView newsTitleText = (TextView) view.findViewById(R.id.news_title);

    TextView newsContentText = (TextView) view.findViewById(R.id.news_content);

    newsTitleText.setText(newsTitle);//刷新新聞標題

    newsContentText.setText(newsContent);//刷新新聞內容

  }

}

 

2.這裡我們充分發揮了代碼的復用性,直接在佈局中引入了NewsContentFragment,這樣也就相當於把news_content_frag​佈局中內容自動加了進來。

 

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

   

    <fragment

        android:id="@+id/news_content_fragment"

        android:name="com.example.fragmentbestpractice.NewsContentFragment"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        /></LinearLayout>

 

3.然後新建一個類用於顯示新聞內容的活動,可以看到在onCreate()方法中我們通過Intent獲取到了傳入的新聞標題和內容,然後調用FragmentManager的findFragmentById()方法地得到了NewsContentFragment的實例,接著調用它的refresh()方法,並將新聞的標題和內容傳入,就可以把這些數據顯示出來了,註意這裡我們還提供了一個action​Start()方法。

 

package com.example.fragmentbestpractice;

​

import android.app.Activity;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.view.Window;

​

public class NewsContentActivity extends Activity{

  public static void actionStart(Context context,String newsTitle,String newsContent) {

    Intent intent = new Intent(context,NewsContentActivity.class);

    intent.putExtra("news_title",newsTitle);

    intent.putExtra("news_content",newsContent);

    context.startActivity(intent);

  }

 

  @Override

  protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    setContentView(R.layout.news_content);

    String newsTitle = getIntent().getStringExtra("news_title");//獲取傳入的新聞標題

    String newsContent = getIntent().getStringExtra("news_content");//獲取傳入的新聞內容

    NewsContentFragment newsContentFragment = (NewsContentFragment)getFragmentManager().findFragmentById(R.id.news_content_fragment);

    newsContentFragment.refresh(newsTitle,newsContent);//刷新NewsContentFragment界面

  }

​

}

 

4.接下來創建一個用於顯示新聞列表的佈局

 

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

   

    <ListView

        android:id="@+id/news_title_list_view"

        android:layout_width="match_parent"

        android:layout_height="match_parent" >

       

    </ListView></LinearLayout>

 

​三、源碼:

1.項目地址

https://github.com/ruigege66/Android/tree/master/FragmentBestPractise

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客園:https://www.cnblogs.com/ruigege0000/

4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料

 

 


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

-Advertisement-
Play Games
更多相關文章
  • Cassandra資料庫通過JMX方式對外提供監控和管理服務。本文講解如何配置和開啟Cassandra的JMX服務。 環境說明 本文是基於以下版本的系統和服務: cassandra 3.11.6 openjdk 1.8.0 mx4j 3.0.2 Ubuntu 18.04.4 LTS 需要說明的是,當 ...
  • [TOC] 1. 前置知識 1.1 InnoDB 索引結構 InnoDB 索引使用的數據結構是 "B+ 樹" 。 百度百科中的結構圖: 一個 m 階 樹的幾個特點: 1. 每個節點可能有最多 m 個子節點 2. 除根結點外,每個結點至少有 個子女,根結點至少有兩個子女 3. 有 k 個子女的結點必有 ...
  • [TOC] 1.Xtrabackup介紹 Xtrabackup是Percona公司專門針對MySQL資料庫開發的一款開源免費的物理備份(熱備)工具,可以對InnoDB和XtraDB等事務引擎的資料庫實現非阻塞(即不鎖表)方式的備份,也可以針對MyISAM等非事務引擎實現鎖表方式備份。 Xtrabac ...
  • 一、什麼是PL/SQL? PL/SQL(Procedure Language/SQL)是oracle在標準的sql語言上的擴展。ql/sql不僅允許嵌入sql語言,還可以定義變數和常量,允許私用條件語句和迴圈語句,允許使用例外處理各種錯誤,這使得它的功能變得更加強大。 PL/SQL開發工具主要有: ...
  • [TOC] 1.資料庫管理員的兩大工作核心 1.1.能夠讓數據安全得到保護 所謂的數據安全,最容易被人誤以為是只有數據丟失,其實還包括數據被脫庫、泄密等方面。 1.2.能7 24小時提供服務 資料庫具備7 24小時提供服務的能力,是資料庫管理員的重要職責。 2.全量備份和增量備份 2.1.全量備份的 ...
  • 前言: 本文詳細介紹了 HBase DependentColumnFilter 過濾器 Java&Shell API 的使用,並貼出了相關示例代碼以供參考。DependentColumnFilter 也稱參考列過濾器,是一種允許用戶指定一個參考列或引用列來過濾其他列的過濾器,過濾的原則是基於參考列的 ...
  • 前言: 本文詳細介紹了 HBase ValueFilter 過濾器 Java&Shell API 的使用,並貼出了相關示例代碼以供參考。ValueFilter 基於列值進行過濾,在工作中涉及到需要通過HBase 列值進行數據過濾時可以考慮使用它。比較器細節及原理請參照之前的更文: "HBase Fi ...
  • A.前言:為瞭解決安卓端向伺服器上傳照片的問題 1.獲得相冊許可權,選取照片,取到照片的url 2.使用okhttp訪問伺服器並向伺服器傳照片 3.配置springmvc文件解析器 4.搭建伺服器,獲取數據保存照片 B.Android添加一個按鈕和一個ImageView,設置它的點擊事件,打開相冊選擇 ...
一周排行
    -Advertisement-
    Play Games
  • Timer是什麼 Timer 是一種用於創建定期粒度行為的機制。 與標準的 .NET System.Threading.Timer 類相似,Orleans 的 Timer 允許在一段時間後執行特定的操作,或者在特定的時間間隔內重覆執行操作。 它在分散式系統中具有重要作用,特別是在處理需要周期性執行的 ...
  • 前言 相信很多做WPF開發的小伙伴都遇到過表格類的需求,雖然現有的Grid控制項也能實現,但是使用起來的體驗感並不好,比如要實現一個Excel中的表格效果,估計你能想到的第一個方法就是套Border控制項,用這種方法你需要控制每個Border的邊框,並且在一堆Bordr中找到Grid.Row,Grid. ...
  • .NET C#程式啟動閃退,目錄導致的問題 這是第2次踩這個坑了,很小的編程細節,容易忽略,所以寫個博客,分享給大家。 1.第一次坑:是windows 系統把程式運行成服務,找不到配置文件,原因是以服務運行它的工作目錄是在C:\Windows\System32 2.本次坑:WPF桌面程式通過註冊表設 ...
  • 在分散式系統中,數據的持久化是至關重要的一環。 Orleans 7 引入了強大的持久化功能,使得在分散式環境下管理數據變得更加輕鬆和可靠。 本文將介紹什麼是 Orleans 7 的持久化,如何設置它以及相應的代碼示例。 什麼是 Orleans 7 的持久化? Orleans 7 的持久化是指將 Or ...
  • 前言 .NET Feature Management 是一個用於管理應用程式功能的庫,它可以幫助開發人員在應用程式中輕鬆地添加、移除和管理功能。使用 Feature Management,開發人員可以根據不同用戶、環境或其他條件來動態地控制應用程式中的功能。這使得開發人員可以更靈活地管理應用程式的功 ...
  • 在 WPF 應用程式中,拖放操作是實現用戶交互的重要組成部分。通過拖放操作,用戶可以輕鬆地將數據從一個位置移動到另一個位置,或者將控制項從一個容器移動到另一個容器。然而,WPF 中預設的拖放操作可能並不是那麼好用。為瞭解決這個問題,我們可以自定義一個 Panel 來實現更簡單的拖拽操作。 自定義 Pa ...
  • 在實際使用中,由於涉及到不同編程語言之間互相調用,導致C++ 中的OpenCV與C#中的OpenCvSharp 圖像數據在不同編程語言之間難以有效傳遞。在本文中我們將結合OpenCvSharp源碼實現原理,探究兩種數據之間的通信方式。 ...
  • 一、前言 這是一篇搭建許可權管理系統的系列文章。 隨著網路的發展,信息安全對應任何企業來說都越發的重要,而本系列文章將和大家一起一步一步搭建一個全新的許可權管理系統。 說明:由於搭建一個全新的項目過於繁瑣,所有作者將挑選核心代碼和核心思路進行分享。 二、技術選擇 三、開始設計 1、自主搭建vue前端和. ...
  • Csharper中的表達式樹 這節課來瞭解一下表示式樹是什麼? 在C#中,表達式樹是一種數據結構,它可以表示一些代碼塊,如Lambda表達式或查詢表達式。表達式樹使你能夠查看和操作數據,就像你可以查看和操作代碼一樣。它們通常用於創建動態查詢和解析表達式。 一、認識表達式樹 為什麼要這樣說?它和委托有 ...
  • 在使用Django等框架來操作MySQL時,實際上底層還是通過Python來操作的,首先需要安裝一個驅動程式,在Python3中,驅動程式有多種選擇,比如有pymysql以及mysqlclient等。使用pip命令安裝mysqlclient失敗應如何解決? 安裝的python版本說明 機器同時安裝了 ...