1. 程式人生 > >一起去看小學期之Android程式設計

一起去看小學期之Android程式設計

本例項提供列表控制元件ListView初級用法,通過認真閱讀程式碼和註釋,是可以在腦海中建立一個清晰的控制元件架構

主要為之後製作檔案目錄瀏覽器作鋪墊學習,實現選擇資料夾進入及檔案選擇功能

//main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
	android:id="@+id/LinearLayout01" 
	android:layout_width="fill_parent" 
	android:layout_height="fill_parent" 
	xmlns:android="http://schemas.android.com/apk/res/android">
<ListView 
	android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/ListView01"
    android:drawSelectorOnTop="false"
          /><!-- android:drawSelectorOnTop調整點選時背景色是否覆蓋文字-->
</LinearLayout>
//列表子項listview_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
	android:id="@+id/RelativeLayout01" 
	android:layout_width="fill_parent" 
	xmlns:android="http://schemas.android.com/apk/res/android" 
	android:layout_height="wrap_content" 
	android:paddingBottom="4dip" 
	android:paddingLeft="12dip"
	android:paddingRight="12dip">
<ImageView 
	android:paddingTop="12dip"
	android:layout_alignParentRight="true"
	android:layout_width="wrap_content" 
	android:layout_height="wrap_content" 
	android:id="@+id/ItemImage"
	/> 
<TextView 
    android:text="TextView01" 
    android:layout_height="wrap_content" 
    android:textSize="20dip" 
    android:layout_width="fill_parent" 
    android:id="@+id/ItemTitle"
    android:singleLine="true"   
    />
<TextView 
	android:text="TextView02" 
	android:layout_height="wrap_content" 
	android:layout_width="fill_parent" 
	android:layout_below="@+id/ItemTitle" 
	android:id="@+id/ItemText"
	/>
<TextView 
	android:text="TextView03" 
	android:textSize="12dip" 
	android:layout_height="wrap_content" 
	android:layout_width="fill_parent" 
	android:layout_below="@+id/ItemText" 
	android:id="@+id/ItemSign"
	/>
</RelativeLayout>

//主類java
package com.test.file.list;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnCreateContextMenuListener;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;

public class FILEActivity extends Activity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		// 繫結Layout裡的ListView
		ListView list = (ListView) findViewById(R.id.ListView01);

		// 生成動態陣列,加入資料
		ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();
		for (int i = 0; i < 5; i++) {
			// HashMap為鍵值對型別。第一個引數為鍵,第二個引數為值
			HashMap<String, Object> map = new HashMap<String, Object>();
			map.put("ItemImage", R.drawable.icon);// 影象資源圖片,顯示在小項右端
			map.put("ItemTitle", "Level " + i);
			map.put("ItemText", "此處可顯示正文或者檔案路徑 ");
			map.put("ItemSign", "This is bY檔案組 ");
			listItem.add(map);// 新增到listItem中
		}
		// 生成介面卡的Item和動態陣列對應的元素,這裡用SimpleAdapter作為ListView的資料來源
		// 如果條目佈局比較複雜,可以繼承BaseAdapter來定義自己的資料來源。
		// 生成一個SimpleAdapter型別的變數來填充資料
		SimpleAdapter listItemAdapter = new SimpleAdapter(
				this,// this是當前Activity的物件
				listItem,// 資料來源 為填充資料後的ArrayList型別的物件  
				R.layout.listview_item,// 子項的佈局.xml檔名
				new String[] { "ItemImage", "ItemTitle", "ItemText", "ItemSign" },
				//這個String陣列中的元素就是list物件中的列,list中有幾這個陣列中就要寫幾列。  				    
				new int[] { R.id.ItemImage, R.id.ItemTitle, R.id.ItemText,
						R.id.ItemSign });//值是對應XML佈局檔案中的一個ImageView,三個TextView的id 
		// 新增並顯示
		list.setAdapter(listItemAdapter);

		// 新增點選
		list.setOnItemClickListener(new OnItemClickListener() {
			@Override//重寫單擊響應
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				setTitle("點選第" + arg2 + "個專案");//直接在標題顯示
			}
		});

		// 新增長按點選
		list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

			@Override
			public void onCreateContextMenu(ContextMenu menu, View v,
					ContextMenuInfo menuInfo) {
				menu.setHeaderTitle("功能選擇選單");
				menu.add(0, 0, 0, "預覽(設想功能)");
				menu.add(0, 1, 0, "返回(設想功能)");
			}
		});
	}
	// 長按選單響應函式
	@Override
	public boolean onContextItemSelected(MenuItem item) {
		setTitle("選擇了長按選單中第" + item.getItemId() + "項功能");//又是在標題欄
		return super.onContextItemSelected(item);
	}
}


不要每一次勵志過後,該上網的上網,該Dota的Dota。

每天早上叫醒你的不是鬧鐘,而是夢想。

相關推薦

一起學期Android程式設計

本例項提供列表控制元件ListView初級用法,通過認真閱讀程式碼和註釋,是可以在腦海中建立一個清晰的控制元件架構 主要為之後製作檔案目錄瀏覽器作鋪墊學習,實現選擇資料夾進入及檔案選擇功能 //main.xml <?xml version="1.0" encod

Flink SQL Table 我們一起2018中超聯賽-Flink牛刀小試

版權宣告:本套技術專欄是作者(秦凱新)平時工作的總結和昇華,通過從真實商業環境抽取案例進行總結和分享,並給出商業應用的調優建議和叢集環境容量規劃等內容,請持續關注本套部落格。版權宣告:禁止轉載,歡迎學習。QQ郵箱地址:[email protected],如有任何問題,可隨時聯絡

用著短短的30行程式碼,帶你一起朋友們的人生態度!

微信是現在人們生活中不可或缺的一部分,通過微信的朋友圈,你能看到朋友們的生活動態,能看到他們激勵自己或朋友的簽名,你能看許許多多的正能量。   今天就用 Python 把你微信朋友的簽名收集起來做成詞雲。從簽名大致能看出一個人的人生態度,今天就來看看你的微信朋友態度。 專

一個白從零基礎自學Android程式設計筆記如何在AndroidManifext.xml檔案中註冊

在瞭解如何在AndroidManifext.xml檔案中註冊之前,首先,要知道一個App從你點選它到開啟你看到的第一個介面,這之間是怎麼執行的作為小白,我是這樣理解的:android程式設計一些不同的

2018一起猛拉維加斯娛樂133+7879+5299旅遊

小猛拉維加斯娛樂133+78臺兒莊古城,位於小猛拉維加斯娛樂133+7879+5299京杭大運河的中心點,坐落於山東省棗莊市臺兒莊區和魯蘇豫皖四省交界地帶。古城肇始於秦漢,發展於唐宋,繁榮於明清,有“天下第一莊”之稱(清乾隆賜)。古城占地2平方公裏,11個功能分區、8大景區和29個景點

android技巧點擊兩次退出活動

code over ast finish int ide amp return ini 通常在主活動中可以設置連擊退出程序,下面通過代碼來實現這一功能: @Override//按兩次back鍵退出public boolean onKeyDown(int keyCode, K

Android註冊程式編寫(一)圖解程式設計

Android註冊程式編寫(一) (作者:Baron_wu 禁止轉載) 介面設計 首先進入Androidstudio建立一個空的工程: 選擇要執行的裝置: 選擇一個空的活動: 為app命名: 之後進入主介面: 點選紅筆畫中的視窗進入介面設計視窗: 介面設計視窗如下

android簡訊程式CursorAdapter繫結ListView

同步查詢繫結: mListView = findViewById(R.id.id_containers); //定義uri mALL_conversation_uri = Telephony.Threads.CONTENT_URI.buildUpon().appendQueryParame

Android 分享微信程式圖片優化

      小菜上週接入了微信分享小程式的入口,基本功能實現都沒問題,有需要的朋友可以瞭解一下 Android 分享微信小程式失敗二三事,雖然功能都正常,但整體測試發現圖片展示效果不佳。於是小菜整理了一個簡單的小方法處理一下圖片!  

Android 學習Android程式設計權威指南》第二版 程式碼+筆記整理(四)

(程式碼)GeoQuiz最終開發 GeoQuiz應用初步開發 GeoQuiz應用升級開發 解決GeoQuiz應用旋轉恢復第一題的BUG 不展示編譯器自動完成的程式碼,僅提供手動修改或者編寫的程式碼。 省略了先前一些程式碼,可參照上方連結。 升級內容: 增加作弊按鈕,給使用者提

如何一個Android專案?

1. 首先看AndroidManifest.xml 在這個檔案裡面有一個activity是與眾不同的,它是整個app的入口 這個activity的名字一般叫SplashActivity,其action和category在任何一個Android專案中

android程式設計3 socket程式設計udp傳送

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

程式設計知識 Random介面返回值

本文簡述了 Random 介面返回值的一些相關資訊 平日工作中,(偽)隨機數的使用一定是避不開的,拿 C# 為例,System 名稱空間下的 Random 型別一般都是我們生成(偽)隨機數的第一選擇: var rand = new System.Random();

程式設計知識 C# indexer 和 property

本文簡單介紹了混合使用 C# indexer 和 property 時可能出現的一種意外錯誤 C# 中的 property 想必大家都很熟悉,比起傳統的 get 和 set 函式, property 的一大優勢就是可以簡化程式碼: public class Prop

程式設計知識命令列解析

當前的軟體開發中,圖形介面已然大行其道,命令列似乎愈加式微,不過在一些場景下,命令列仍然必不可少~ 工具鏈的正常運作往往需要仰仗命令列,各個工具間的“溝通交流”基本都是通過命令列來完成,考慮一下 C 語言中 main 函式的標準定義: // C int main(i

Android 專案--SQLite 使用法門

package com.terry; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteCursor; import android.os.Bundle

Android 學習Android程式設計權威指南》第二版 程式碼+筆記整理(三)

(程式碼)解決GeoQuiz應用旋轉恢復第一題的BUG 一、產生BUG的原因 1. 裝置旋轉時,系統會銷燬當前的QuizActivity例項,然後建立一個新的例項,這時陣列索引(mCurrentIndex)會初始化為0,因此使用者看到的還是第一道題目。 2.

安全程式設計Android APK打包程式碼混淆

第一步:在專案工程目錄下的proguard-rules.pro檔案中配置自定義的混淆規則 #注意: #1.引用外部的jar包 如果不是自己寫的最好不混淆它們,因為外部jar包有可能已經混淆過 #2.不要混淆XML佈局中使用的自定義控制元件類,混淆後加載佈局會報找不到該控制

程式設計知識效能優化

本文簡述了一種效能優化中常見的思維誤區 程式開發總是離不開效能優化,雖然規避不成熟優化的箴言早已有之,但我們又往往會被自己翻湧的思維火花所牽絆,義無反顧的開啟自己的效能劣化之旅… 考慮下面的一個簡單問題(以 C# 為例): 編寫一個字串修飾函式:給定一個

Android開發工具:Chrome Custom Tabs

參考文章 官方文件 官方原始碼 http://qq157755587.github.io/2016/08/12/custom-tabs-best-practices/ https://juejin.im/entry/586f089c61ff4b006d29f9c0 一