Android ListView && ArrayAdapter開發詳解,androidlistview
Android ListView && ArrayAdapter開發詳解
請支援原創,尊重原創,轉載請註明出處:http://blog.csdn.net/kangweijian(來自kangweijian的csdn部落格)
主Activity布局檔案(activity_main.xml)
<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" android:orientation="vertical" > <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#03fb2c" android:padding="24px" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="Listview" android:textSize="48px" /> </RelativeLayout> <ListView android:id="@+id/bookmark_ListView" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="fill_parent" android:background="#FFFFA0" > </ListView> </LinearLayout>
自訂ListView布局檔案(list_item_simple.xml)
<?xml version="1.0" encoding="UTF-8"?><LinearLayout android:id="@android:id/text1" xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/BookMark_list_item_simple_favicon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/browser_net"/> <TextView android:id="@+id/BookMark_list_item_simple_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_gravity="center" android:textSize="36px" android:ellipsize="end" android:singleLine="true"/></LinearLayout>
MainActivity.java
package com.example.arrayadapterlistviewdemo;import java.util.ArrayList; import android.os.Bundle;import android.app.Activity; import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemLongClickListener;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.Toast;public class MainActivity extends Activity { private ListView mListView; private MyArrayAdpter mAdpter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayList<String> mList = new ArrayList<String>(); mList.add("aaaaaaaaaaaaaa"); mList.add("bbbbbbbbbbbbbb"); mList.add("cccccccccccccc"); mAdpter = new MyArrayAdpter(this, mList); mListView = (ListView) findViewById(R.id.bookmark_ListView); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mList); mListView.setAdapter(adapter); mListView.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub mListView.setAdapter(mAdpter); return false; } }); mListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "第"+arg2+"點擊事件發生", Toast.LENGTH_LONG).show(); } }); }}
自訂ArrayAdapter適配器
package com.example.arrayadapterlistviewdemo;import java.util.ArrayList; import android.content.Context;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.ImageButton;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;public class MyArrayAdpter extends ArrayAdapter<String>{ private Context mContext; private ArrayList<String> mList = new ArrayList<String>(); public MyArrayAdpter(Context context, ArrayList<String> list) { super(context, android.R.layout.simple_list_item_checked,list); // TODO Auto-generated constructor stub mContext = context; mList = list; } @Override public void add(String object) { // TODO Auto-generated method stub// super.add(object); mList.add(object); } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub final int mPosition = position; if (null == convertView) { convertView = ((MainActivity) mContext).getLayoutInflater() .inflate(R.layout.list_item_simple, null); } TextView textView =(TextView)convertView.findViewById(R.id.BookMark_list_item_simple_text); textView.setText(mList.get(position)); ImageView mImage = (ImageView) convertView.findViewById(R.id.BookMark_list_item_simple_favicon); mImage.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Toast.makeText(mContext, "第"+mPosition+"表徵圖被點擊", Toast.LENGTH_LONG).show(); } }); return convertView; }}
請支援原創,尊重原創,轉載請註明出處:http://blog.csdn.net/kangweijian(來自kangweijian的csdn部落格)