2018年12月3日 星期一

Android Studio撰寫程式第五課

  目前所使用的版本為Android Studio 3.2.1,這一次所要學習的部份則為使用"ListView"元件選寫一個基本的應用程式...!!!


  以下為res/layout/activity_main.xml分別有Design和Text中所要修改的地方為Text,而所要做修正的部份為"android.support.constraint.constraintLayout"改為"LinearLayout"其餘的地方維持不變。


  以下為res/layout/activity_main.xml修改為"LinearLayout",並另外新增一個ListView的原件。

  以下為res/layout/activity_main.xml的Design圖片。

  另為在res/layout/中新增一個style_listview.xml。

  而修正的部份為"android.support.constraint.constraintLayout"改為"LinearLayout"其餘的地方維持不變。

  以下為style_listview.xml修改為"LinearLayout",並另為外新增三個TextView的原件。
  以下為以下為style_listview.xml的程式碼 :
<LinearLayout
android:id="@+id/llBorder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp">
<TextView
android:id="@+id/tvLocal"
android:layout_width="92dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="TextView"
android:textColor="@android:color/holo_red_dark"
android:textSize="20sp" />
<TextView
android:id="@+id/tvName"
android:layout_width="154dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="TextView"
android:textColor="@android:color/background_dark"
android:textSize="20sp" />
<TextView
android:id="@+id/tvcach"
android:layout_width="154dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:text="TextView"
android:textColor="@android:color/holo_blue_dark"
android:textSize="20sp"
android:textStyle="bold" />
</LinearLayout>

  以下為res/layout/style_listview.xml的Design圖片。
  下面的程式碼為參考網路上的相關資料撰寫而成的,而這部份只局限於JAVA中的MainActivity.java中。
package aixstudio.listview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class MainActivity extends AppCompatActivity {

    //ListView 要顯示的內容    public String[][] data = {
            {"●","沙拉類","價格"},
            {"。","水果生菜","120"},
            {"。","鮮蝦生菜","180"},
            {"。","和風洋蔥 ","80"},
            {"●","日式小菜類","價格"},
            {"。","海膽山藥 "," 70"},
            {"。","北歐沙拉 "," 80"},
            {"●","熱炒類","價格"},
            {"。","泡菜炒牛肉"," 180"},
            {"。","清炒牛蒡"," 110"},
            {"。","麻油松阪豬"," 200"},
            {"。","牛肉奶油燒"," 360"},
            {"●","煮物類","價格"},
            {"。","味噌湯"," 40"},
            {"。","海苔清湯"," 40"},
            {"。","鮮魚味噌湯"," 80"},
            {"。","山藥鮮魚湯"," 80"},
    };

    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //將資料轉換成<key,value>的型態        List<Map<String, Object>> items = new ArrayList<Map<String,Object>>();
        for (int i=0;i < data.length;i++){
            Map<String, Object> item = new HashMap<String, Object>();
            item.put("level", data[i][0]);
            item.put("name", data[i][1]);
            item.put("cach", data[i][2]);
            items.add(item);
        }

        //帶入對應資料        SimpleAdapter adapter = new SimpleAdapter(
                this,
                items,
                R.layout.style_listview,
                new String[]{"level", "name","cach"},
                new int[]{R.id.tvLocal, R.id.tvName ,R.id .tvcach  }
        );
        ListView listview = (ListView) findViewById(R.id.listview);
        listview.setAdapter(adapter);



    }
}
  下圖為使用模擬器所使用的結果。

沒有留言:

張貼留言