2018-2019-2 20189203 移動平臺應用開發實踐第八周學習總結
第31、32、33、34章
第31章 ListView
- (一)、ListView 概念:
ListView是Android中最重要的組件之一,幾乎每個Android應用中都會使用ListView。它以垂直列表的方式列出所需的列表項。
java.lang.Object
? android.view.View
? android.view.ViewGroup
? android.widget.AdapterView
? android.widget.AbsListView
? android.widget.ListView
- (二)、ListView的兩個職責:
? 處理用戶的選擇點擊等操作。 - (三)、列表的顯示需要三個元素:
? 1.ListVeiw:用來展示列表的View;
? 2.適配器: 用來把數據映射到ListView上的中介;
? 3.數據源: 具體的將被映射的字符串,圖片,或者基本組件。 - (四)、什麽是適配器?
適配器是一個連接數據和AdapterView的橋梁,通過它能有效地實現數據與AdapterView的分離設置,使AdapterView與數據的綁定更加簡便,修改更加方便。將數據源的數據適配到ListView中的常用適配器有:ArrayAdapter、SimpleAdapter 和 SimpleCursorAdapter。
? ArrayAdapter最為簡單,只能展示一行字;
? SimpleAdapter有最好的擴充性,可以自定義各種各樣的布局,除了文本外,還可以放ImageView(圖片)、Button(按鈕)、CheckBox(復選框)等等;
? SimpleCursorAdapter可以認為是SimpleAdapter對數據庫的簡單結合,可以方便地把數據庫的內容以列表的形式展示出來。
? 但是實際工作中,常用自定義適配器。即繼承於BaseAdapter的自定義適配器類。
- (五)、ListView的常用UI屬性:
? android:divider ? android:dividerHeight ? android:entries ? android:footerDividersEnabled ? android:headerDividersEnabled
第32章GridView
Android 的 GridView 以二維滾動網格(行和列)顯示項目,網格項目不一定是預定的,但它們會自動使用 ListAdapter 布局插入。
一個適配器實際上是UI組件和數據源之間的橋梁,填充數據到UI組件。適配器可以用來提供數據,如:微調,列表視圖,網格視圖等。
ListView 和 GridView 是 AdapterView 的子類,它們可以綁定填充到一個適配器,從外部源檢索數據,並創建一個視圖表示每個數據項。
原文出自【易百教程】,商業轉載請聯系作者獲得授權,非商業轉載請保留原文鏈接:https://www.yiibai.com/android/android_grid_view.html
這個例子將通過簡單的步驟顯示如何使用 GridView 創建自己的 Android 應用程序。按照下面的步驟來 創建Android 應用程序 GridView:
Step 描述
1 使用Eclipse IDE創建Android應用程序,並將其命名為GridView在包com.yiibai.gridview下。
2 修改res/layout/activity_main.xml文件的默認內容以包括GridView的內容以及它的屬性。
3 在res/values/strings.xml文件中定義所需的常量。
4 把幾張照片放在res/drawable-hdpi文件夾。這幾張相處如下:sample0.jpg, sample1.jpg, sample2.jpg, sample3.jpg, sample4.jpg, sample5.jpg, sample6.jpg 和 sample7.jpg.
5 在包com.yiibai.helloworld下創建一個新類ImageAdapter擴展BaseAdapter。將用於填充視圖,這個類將實現一個適配器的功能。
6 運行該應用程序啟動Android模擬器並驗證應用程序所運行的結果。
以下是內容是主活動文件 src/com.yiibai.gridview/MainActivity.java。這個文件可以包括每個的基本生命周期方法。
package com.yiibai.gridview;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.GridView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
下面是 res/layout/activity_main.xml 文件的內容:
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
以下是文件 res/values/strings.xml 內容定義兩個常量:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">HelloWorld</string>
<string name="action_settings">Settings</string>
</resources>
以下是 src/com.yiibai.gridview/ImageAdapter.java 文件的內容:
package com.yiibai.gridview;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
public class ImageAdapter extends BaseAdapter {
private Context mContext;
// Constructor
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
// Keep all Images in array
public Integer[] mThumbIds = {
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7,
R.drawable.sample_0, R.drawable.sample_1,
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7,
R.drawable.sample_0, R.drawable.sample_1,
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7
};
}
讓我們嘗試運行 GridView 應用程序,Eclipse AVD上安裝的應用程序,並啟動它,如果設置和應用都沒有問題,它會顯示以下模擬器窗口:
原文出自【易百教程】,商業轉載請聯系作者獲得授權,非商業轉載請保留原文鏈接:https://www.yiibai.com/android/android_grid_view.html
這個例子將通過簡單的步驟顯示如何使用 GridView 創建自己的 Android 應用程序。按照下面的步驟來 創建Android 應用程序 GridView:
Step 描述
1 使用Eclipse IDE創建Android應用程序,並將其命名為GridView在包com.yiibai.gridview下。
2 修改res/layout/activity_main.xml文件的默認內容以包括GridView的內容以及它的屬性。
3 在res/values/strings.xml文件中定義所需的常量。
4 把幾張照片放在res/drawable-hdpi文件夾。這幾張相處如下:sample0.jpg, sample1.jpg, sample2.jpg, sample3.jpg, sample4.jpg, sample5.jpg, sample6.jpg 和 sample7.jpg.
5 在包com.yiibai.helloworld下創建一個新類ImageAdapter擴展BaseAdapter。將用於填充視圖,這個類將實現一個適配器的功能。
6 運行該應用程序啟動Android模擬器並驗證應用程序所運行的結果。
以下是內容是主活動文件 src/com.yiibai.gridview/MainActivity.java。這個文件可以包括每個的基本生命周期方法。
package com.yiibai.gridview;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.GridView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
下面是 res/layout/activity_main.xml 文件的內容:
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
以下是文件 res/values/strings.xml 內容定義兩個常量:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">HelloWorld</string>
<string name="action_settings">Settings</string>
</resources>
以下是 src/com.yiibai.gridview/ImageAdapter.java 文件的內容:
package com.yiibai.gridview;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
public class ImageAdapter extends BaseAdapter {
private Context mContext;
// Constructor
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
// Keep all Images in array
public Integer[] mThumbIds = {
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7,
R.drawable.sample_0, R.drawable.sample_1,
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7,
R.drawable.sample_0, R.drawable.sample_1,
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7
};
}
讓我們嘗試運行 GridView 應用程序,Eclipse AVD上安裝的應用程序,並啟動它,如果設置和應用都沒有問題,它會顯示以下模擬器窗口:
第33章樣式和主題
在android很多地方要對控件的樣式(如:ActionBar的樣式)和Activity的樣式進行設置,對應控件的樣式設置是(Style)對Activity的樣式設置是(Theme) ets pad ons theme ... string rgb 聯系 deb 第31、32、33、34章
第31章 ListView
(一)、ListView 概念:
ListView是Android中最重要的組件之一,幾乎每個Android應用中都會使用ListVie 方便 不同 技術 rest 接收 ttext 生命周期 androi linear 第23、24、25、26章學習
第23章 Android簡介
Android是一種多用戶的Linux系統。它快速達到巔峰的原因之一是,它使用Java作為編程語言。所有Android類和接口 ace The ont ces horizon 產生 xtend 成了 例如 第39,40,41,42章
第39章 偏好
在Android應用中,我們常需要記錄用戶設置的一些偏好參數,,此時我們就需要用SharedPreferences和Editor將這些信息保存下來,在 nta 測試 區別 構造函數 類型參數 一句話 操作 get lee 第12、13、14、15章學習
第12章 枚舉
一、常量
在JDK1.5 之前,我們定義常量都是: public static final.... 。現在好了,有了枚舉,可以把相關的常量分組到一個枚舉類 20172315 2018-2019-2 《程式設計與資料結構》第七週學習總結
教材學習內容總結
二又查詢樹是一種含有附加屬性的二又樹,即其左孩子小於父結點,而父結點又小於或等於右孩子。
每個BinaryTreeNode物件要維護一個指向結點所儲存元素的引用,另外還要維護指向結點的每個孩子 20172303 2018-2019-1《程式設計與資料結構》第7周學習總結
教材學習內容總結
本週在上週學習了二叉樹的基礎上,學習了一種二叉樹的特殊形式——二叉查詢樹,又叫有序二叉樹、排序二叉樹。本章學習了兩種二叉查詢樹的實現方法,以及兩種二叉查詢樹的應用。
一、概述
1.二叉查詢樹
20172307 2018-2019-1 《程式設計與資料結構》第7周學習總結
教材學習內容總結
樹的分類
廣義樹:對結點所含有的孩子數目無限制的樹。
n元樹:每一結點不超過n個孩子的樹。(結點最多具有兩個孩子的樹稱為二叉樹)
樹的平衡:樹的所有葉子都位於同一層或者至少是彼此相差不超過一 20172313 2018-2019-1 《程式設計與資料結構》第八週學習總結
教材學習內容總結
堆
堆(heap)就是具有兩個附加屬性的一棵二叉樹。特點:①最小堆是一棵完全樹。②最小堆對每一結點,它小於或等於其左孩子和右孩子。(最大堆的結點大於或等於它的左右孩子)
Heap 20172323 2018-2019-1 《程式設計與資料結構》第八週學習總結
教材學習內容總結
本週學習了第12章優先佇列與堆
12.1 堆
堆是具有兩個附加屬性的一棵二叉樹,它是一棵完全樹,對於每一結點,它小於或等於其左孩子和右孩子,這樣定義下的堆是最小堆,如果對於每一結點,它大於或等 教材學習內容總結
堆
堆:是一顆完全二叉樹,每一個結點都小於等於左右孩子(最小堆),或大於等於左右孩子(最大堆)他的每一個子樹也是最小堆或最大堆。
堆的操作
addElement操作(堆的插入)
插入新結點時,是作為葉子結點插入的,且一定要保持樹的完整性。如果最下層不滿,插入 20172327 2018-2019-1 《程式設計與資料結構》第八週學習總結
教材學習內容總結
第十二章 優先佇列與堆
堆
1.最小堆(minheap):對是一個完全二叉樹,其中的每個結點都小於或等於它的兩個孩子。
2.最大堆(maxheap):對是一個完全二叉 20172318 2018-2019-1 《程式設計與資料結構》第8周學習總結
教材學習內容總結
優先佇列與堆
heap:堆 一種完全二叉樹,可以是最小堆,也可以是最大堆。
堆是一棵完全二叉樹,其中的每一結點都小於或等於它的兩個孩子。
minheap:最小堆 具有 20172303 2018-2019-1《程式設計與資料結構》第8周學習總結
教材學習內容總結
本週的內容又是一次延續上一週學習內容掌握新知識的過程,本週學習了一種特殊形式的樹——堆,學習了兩種實現堆的方法:用連結串列實現和用陣列實現,同時還學習了使用堆來實現一種特殊佇列——優先佇列以及基於堆實現的 20172312 2018-2019-1 《程式設計與資料結構》第八週學習總結
教材學習內容總結
第十二章
堆
1.堆:具有兩個附加屬性的一顆二叉樹,它是一顆完全二叉樹,對每一結點,它小於或等於其左右孩子(或大於等於其左右孩子)
2.最小堆:對每一結點,它小於或等於其左右孩子,將其最小元素儲 20172333 2018-2019-1 《程式設計與資料結構》第八週學習總結
教材學習內容總結
《Java軟體結構與資料結構》第十二章-優先佇列與棧
一、堆
①堆是一顆具有兩個附加屬性的完全二叉樹
附加屬性:1.堆是一顆完全樹。2.對於每個結點,它小於或等於其左孩子和右孩子。 20172307 2018-2019-1 《程式設計與資料結構》第8周學習總結
教材學習內容總結
二叉查詢樹是一種含有附加屬性的二叉樹,即其左孩子小於父結點,而父結點又小於或等於右孩子。
每個BinaryTreeNode物件要維護一個指向結點所儲存元素的引用,另外還要維護指向結點的每個孩子的引用 20172315 2018-2019-1 《程式設計與資料結構》第八週學習總結
教材學習內容總結
堆是一棵完全二叉樹,其中的每一結點都小於或等於它的兩個孩子。
一個堆也可以是最大堆(maxheap),其中的結點大於或等於它的左右孩子。
最小堆將其最小元素儲存在該二又樹的根處,且其根的兩個孩子 20172324 2018-2019-1 《程式設計與資料結構》第八週學習總結
教材學習內容總結
堆
具有兩個附加屬性的二叉樹:
是一顆完全樹
對每一結點,它小於或等於其左孩子和右孩子(最小堆)
最大堆的結點大於或等於它的左右孩子
最小堆將其最小元素儲存在該 20172303 2018-2019-1《程式設計與資料結構》第5周學習總結
教材學習內容總結
終於結束了各種不同型別的資料結構的學習,本章的內容轉向了對於不同資料結構中儲存的資料的處理方面,主要學習了兩部分內容——查詢和排序,其中查詢介紹了兩種方法,排序除上學期學過的兩種排序方法,又學習了四種新的 20172324 2018-2019-1 《程式設計與資料結構》第九周學習總結
教材學習內容總結
無向圖
無向圖是一種邊為無序結點對的圖:
圖由頂點和邊組成
頂點由名字或標號來表示,如:A、B、C、D; 邊由連線的定點對來表示,如:(A,B),(C,D),表示兩頂點之間有一
API是這樣來解釋Style的:
A style resource defines the format and look for a UI.A style can be applied to an individual View (from within a layout file)
or to an entire Activity or application (from within the manifest file)
下面就來說說怎麽進行style設置:
1.在資源文件夾裏創建好style.xml和theme.xml
2.在XML文件中都要添加一個
3.在根節點裏面
2018-2019-2 20189203 移動平臺應用開發實踐第八周學習總結
2018-2019-2 20189203 移動平臺應用開發實踐第六周學習總結
2018-2019-2 20189203 移動平臺應用開發實踐第十周學習總結
2018-2019-2 20189203 移動平臺應用開發實踐第四周學習總結
20172315 2018-2019-2 《程式設計與資料結構》第七週學習總結
20172303 2018-2019-1《程式設計與資料結構》第7周學習總結
# 20172307 2018-2019-1 《程式設計與資料結構》第7周學習總結
20172313 2018-2019-1 《程式設計與資料結構》第八週學習總結
20172323 2018-2019-1 《程式設計與資料結構》第八週學習總結
20172314 2018-2019-1《程式設計與資料結構》第八週學習總結
20172327 2018-2019-1 《程式設計與資料結構》第八週學習總結
20172318 2018-2019-1 《程式設計與資料結構》第8周學習總結
20172303 2018-2019-1《程式設計與資料結構》第8周學習總結
20172312 2018-2019-1 《程式設計與資料結構》第八週學習總結
# 20172333 2018-2019-1 《程式設計與資料結構》第八週學習總結
20172307 2018-2019-1 《程式設計與資料結構》第8周學習總結
20172315 2018-2019-1 《程式設計與資料結構》第八週學習總結
20172324 2018-2019-1 《程式設計與資料結構》第八週學習總結
20172303 2018-2019-1《程式設計與資料結構》第5周學習總結
20172324 2018-2019-1 《程式設計與資料結構》第九周學習總結