Now you can Subscribe using RSS

Submit your Email

2017/05/09

Listview

asd
ListView 是 Androiud 中常見的畫面。
使用列表方式來呈現資料如下圖所示。


首先在 Layout.xml 中放入 ListView 元件。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.demo.listviewdemo.ListAdapterListView">

    <ListView
        android:id="@+id/listAdapterListView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</LinearLayout>

然後使用最簡單的 ListAdapter 來把資料與 ListView 結合。
我們先建立一個 String[]。
 String[] languageList = {"Android", "Java", "Swift", "C", "C++", "C#", "Python", "Delphi",
                                            "go", "JavaScript","R","PHP", "Ruby", "Matlab", ":perl"};

也可以把 String[] 放在 Android 提供的 strings.xml resource 中。

<string-array name="list">
        <item>Android</item>
        <item>Java</item>
        <item>Swift</item>
        <item>C</item>
        <item>C++</item>
        <item>C#</item>
        <item>Python</item>
        <item>Delphi</item>
        <item>go</item>
        <item>JavaScript</item>
        <item>R</item>
        <item>PHP</item>
        <item>Ruby</item>
        <item>Matlab</item>
        <item>perl</item>
    </string-array>

然後使用此方法取得 String[] 。
String[] list =getResources().getStringArray(R.array.list);

ListAdapter 用法如下。



要傳入三個參數分別為 Context、resource、 object 。

Context 傳入 this 代表當下的畫面。
resource 傳入 android.R.layout.simple_list.item_1 Android 所提供的 layout.xml。
object 傳入要呈現的 String[] 。
ListView listView = (ListView) findViewById(R.id.listAdapterListView);
        ListAdapter listAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1,
                languageList);
        listView.setAdapter(listAdapter);


這樣就完成最簡單的 ListView 效果就會如下。


再來寫個 Click 事件點擊 item 的時候顯示出資訊。

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView parent, View view, int position, long id) {
                String language;
                TextView textView = (TextView) view.findViewById(android.R.id.text1);
                language =textView.getText().toString();
                Toast.makeText(ListAdapterListView.this, "position=" + position + " Language:" + language, Toast
                        .LENGTH_SHORT)
                        .show();
            }
        });


因為我們在建立 Adapter 的時候是使用 Android 提供的 layout 當作 item 的 View。
android.R.layout.simple_list_item_1 中的 TextView id 為 text1。
然後點擊 Item 得時候就會 Toast 出資訊。


程式碼下載: GitHub


相關連結:

0 意見:

張貼留言

Coprights @ 2016, Blogger Templates Designed By Templateism | Templatelib