編輯:關於android開發
前面寫了3篇關於android的文章,其中的演示程序都寫在了一個工程中,當時為了方便測試就在啟動頁MainActivity中放了3個按鈕,點擊不同的按鈕進入不同的示例程序頁面,MainActivity的界面如下截圖:
按照上面的設計,每寫一個演示程序就需要在MainActivity中新增一個按鈕並為其寫點擊事件,感覺這樣有點麻煩,於是想改進一下,順便用一下ListView和ArrayAdapter。經過改進後的啟動頁如下圖:
新建了一個MainActivity2,用一個ListView來展現演示程序列表,點擊相應列表項就跳轉到相應的演示頁面,功能和之前的MainActivity一樣,但之後就不需要不斷添加按鈕及其點擊事件了,只需要為每個演示頁面添加一行代碼:catalogs.add(new Catalog("演示的名稱", 要跳轉到的Activity.class)),這樣就簡潔多了,具體代碼如下。
MainActivity2布局文件如下:
<?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/lvCatalog" android:layout_width="fill_parent" android:layout_height="fill_parent" > </ListView> </LinearLayout>
MainActivity2 Java代碼如下:
package chengyujia.demo.aty; import java.util.ArrayList; import java.util.List; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import chengyujia.demo.R; import chengyujia.demo.model.Catalog; public class MainActivity2 extends BaseActivity { private ListView lvCatalog; private List<Catalog> catalogs; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); lvCatalog = (ListView) findViewById(R.id.lvCatalog); init(); } private void init() { catalogs = new ArrayList<Catalog>(); // 為主頁目錄添加條目,以後每多寫一個例子,在這裡添加一個條目就可以了。 // 不像以前MainActivity中每多寫一個例子,需要添加一個按鈕,還要寫相應的點擊事件。 catalogs.add(new Catalog("屏幕方向", OrientationActivity.class)); catalogs.add(new Catalog("打電話", CallActivity.class)); catalogs.add(new Catalog("版本信息", VersionActivity.class)); // 這裡ListView的適配器選用ArrayAdapter,ListView中每一項的布局選用系統的simple_list_item_1。 ArrayAdapter<Catalog> adapter = new ArrayAdapter<Catalog>(this, android.R.layout.simple_list_item_1, catalogs); lvCatalog.setAdapter(adapter); // 通過一個實現OnItemClickListener接口的匿名類的onItemClick方法來處理ListView中每一項的點擊事件。 lvCatalog.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { startActivity(new Intent(MainActivity2.this, catalogs.get(position).cls)); } }); } }
在這裡還使用了一個自定義的Model類Catalog,用來表示列表中的每一項綁定的數據,其代碼如下:
package chengyujia.demo.model; import android.app.Activity; //主頁目錄列表項 public class Catalog { // 條目名稱 public String name; // 點擊條目要跳轉到的目標Activity的類型 public Class<? extends Activity> cls; // 寫個帶參數的構造方法,方便賦值使用。 public Catalog(String name, Class<? extends Activity> cls) { this.name = name; this.cls = cls; } // ListView使用ArrayAdapter<T>時每個列表項顯示的內容就是T的toString方法返回的值, // 如果這裡不重寫則會調用父類Object的toString方法。 @Override public String toString() { return name; } }
Catalog類中注意的是一定要重寫toString方法,不然的話ListView的每一項顯示的是“對象的類名+@+hashCode”的組合字符串。
Android 高級面試題及答案,android試題及答案一 性能優化 1.如何對 Android 應用進行性能分析 android 性能主要之響應速度 和UI刷新速度。
關於安卓APP的啟動界面,安卓APP啟動界面剛學安卓App開發的朋友們,可能會遇到一個問題,就是人家的App剛進入會有一個頁面出現一會兒後消失, 這個頁面
解決Android SDK Manager下載太慢問題 在極客頭條上看到的方法,Mark一下,以後可能經常用到。 1、打開android sdk manager 2、打開
Android 博客園客戶端 (五) 查看評論、搜索博主,android查看評論項目地址:https://github.com/ZhangTingkuo/AndroidC