Android連載11-新聞app優秀實踐

1、使用碎片來進行一個最佳實踐,即咱們寫一個新聞的appjava

1.首先先創建一個新聞類android

 

package com.example.fragmentbestpractice;

​

public class News {

 

  private String title;

 

  private String content;

​

  public String getTitle() {

    return title;

  }

​

  public void setTitle(String title) {

    this.title = title;

  }

​

  public String getContent() {

    return content;

  }

​

  public void setContent(String content) {

    this.content = content;

  }

 

 

}

 

2.而後咱們設置一個界面,也就是顯示新聞的界面git

 

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

   

    <TextView

        android:id="@+id/news_title"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:singleLine="true"

        android:ellipsize="end"

        android:textSize="18sp"

        android:paddingLeft="10dp"

        android:paddingRight="10dp"

        android:paddingTop="15dp"

        android:paddingBottom="15dp"

        /></LinearLayout>

 

這裏面有幾個新的屬性設置是咱們以前沒有見到過的,首先來看android:singLine設置爲true表明的就是TextView只能單行顯示;android:ellipse用於設定當文本內容超出控件的寬度的時候,文本的縮略方式,這裏指定成end表示在尾部進行縮略​。github

3.接下來須要建立一個新聞列表的適配器,讓這個適配器繼承自ArrayAdapter,並將泛型指定爲News類,下面咱們新建NewsAdapter微信

 

package com.example.fragmentbestpractice;

​

import java.util.List;

​

import android.content.Context;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ArrayAdapter;

import android.widget.TextView;

​

public class NewsAdapter extends ArrayAdapter<News>{

 

  private int resourceId;

 

  public NewsAdapter(Context context,int textViewResourceId,List<News> objects) {

    super(context,textViewResourceId,objects);

    resourceId = textViewResourceId;

  }

 

  @Override

  public View getView(int position,View convertView,ViewGroup parent) {

    News news = getItem(position);

    View view;

    if(convertView == null) {

      view = LayoutInflater.from(getContext()).inflate(resourceId,null);

    }else {

      view = convertView;

    }

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

    newsTitleText.setText(news.getTitle());

    return view;

  }

}

 

 

能夠看出來,在getView()方法中,咱們獲取到了相應位置上的News類,而且讓新聞的標題在列表中​進行顯示。app

4.編寫新聞內容部分的代碼ide

 

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

   

    <LinearLayout

        android:id="@+id/visibility_layout"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:orientation="vertical"

        android:visibility="invisible">

       

        <TextView

            android:id="@+id/news_title"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:gravity="center"

            android:padding="10dp"

            android:textSize="20sp" />

       

        <ImageView

            android:layout_width="match_parent"

            android:layout_height="1dp"

            android:scaleType="fitXY"

            android:src="@drawable/split_line" />

       

       <TextView

           android:id="@+id/news_content"

           android:layout_width="match_parent"

           android:layout_height="0dp"

           android:layout_weight="1"

           android:padding="15dp"

           android:textSize="18sp" />

 

    </LinearLayout>

   

    <ImageView

        android:layout_width="1dp"

        android:layout_height="match_parent"

        android:layout_alignParentLeft="true"

        android:scaleType="fitXY"

        android:src="@drawable/split_line_vertical" /></RelativeLayout>

 

3、源碼:學習

1.項目地址大數據

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

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

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

4.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料

 

相關文章
相關標籤/搜索