2014年11月18日 星期二

[Android] 自定義listView [方法一] 較簡單

自定義代表著有些東西要自己重新布置,當然也包含著UI,所以XML的布置

方法一

<!--hr_detail_data_list.xml-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/MyListItem"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:paddingBottom="3dip"
    android:paddingLeft="10dip" >

            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="時間" />
    <View   
       android:layout_width="1.5dip"  
       android:layout_height="fill_parent"  
       android:background="#f9b68b"/>  
            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="@string/HR_heart_rate_text" />
</LinearLayout>  

這是主要listView
<!-- heart_rate_full_data.xml -->
<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="vertical" >

    <ListView
        android:id="@+id/listview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </ListView>
</LinearLayout>


程式碼 
//hr_detail_list.java
package com.hartrate.angelcare;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class hr_detail_list extends BaseAdapter {
  Context context;
   String[] data;
   private static LayoutInflater inflater = null;
   
   public hr_detail_list(Context context, String[] data) {
       this.context = context;
       this.data = data;
       inflater = (LayoutInflater) context
               .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   }
   
@Override
public int getCount() {
return data.length;
}
@Override
public Object getItem(int position) {
return data[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null)
        convertView = inflater.inflate(R.layout.hr_detail_data_list, null);
        TextView text1 = (TextView) convertView.findViewById(R.id.textView2);
        
        text1.setText(data[position]);
return convertView;
}

}



package com.hartrate.angelcare;
import java.util.List;
import android.app.Activity;
import android.widget.Toast;

public class heart_rate_detail_data extends Activity {

ListView listView;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.heart_rate_full_data);
// findViews();
listView = (ListView) findViewById(R.id.hr_list_data);
listView.setAdapter(new hr_detail_list(this, new String[] { "data1",
               "data2" }));
}

AdapterView.OnItemClickListener listviewOnItemClkLis = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(),
            "你選擇的是" + list[position], Toast.LENGTH_SHORT).show();
}

};




參考網址:http://stackoverflow.com/questions/15832335/android-custom-row-item-for-listview

沒有留言:

張貼留言