編輯:關於android開發
1.自定義listview,首先在activity.xml中插入一個listview,可以用android:divider=“”設置分割線顏色樣式,android:dividerHeight=""設置分割線高度。
2.新建viewholder_item.xml設計每行Item顯示的樣式布局。
3.自定義Adapter(繼承BaseAdapter),定義一個內部類ViewHolder,並將布局中的控件作為成員變量。如:
public final class ViewHolder{
public ImageView img;
public TextView title;
}
然後在getView()方法中通過視圖緩存機制來重新以緩存。完整創建代碼如下:
package com.example.listview;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class ViewHolderAdapter extends BaseAdapter {
private List<String> mData;
private LayoutInflater mInflater;
public ViewHolderAdapter(Context context,List<String> data){
this.mData=data;
mInflater=LayoutInflater.from(context);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mData.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return mData.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder=null;
if(convertView==null){
holder=new ViewHolder();
convertView=mInflater.inflate(R.layout.viewholder_item,null);//填充自定義item
holder.img=(ImageView)convertView.findViewById(R.id.imageView);
holder.title=(TextView)convertView.findViewById(R.id.textView);
convertView.setTag(holder);
}else{
//通過Tag找到緩存的布局
holder=(ViewHolder)convertView.getTag();
}
holder.img.setBackgroundResource(R.drawable.one);
holder.title.setText(mData.get(position));
return convertView;
}
public final class ViewHolder{
public ImageView img;
public TextView title;
}
}
4.最後在MainActivity中顯示。
package com.example.listview;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
public class MainActivity extends Activity {
private List<String> mData;
private ViewHolderAdapter adapter;
private ListView listview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview=(ListView) findViewById(R.id.listview);
mData=new ArrayList<String>();
for(int i=0;i<120;i++){
mData.add(""+i);
}
adapter=new ViewHolderAdapter(this,mData);
listview.setAdapter(adapter);
}
}
第一篇 Windows環境下通過Eclipse創建的第一個安卓應用程序(圖文詳細步驟),第一篇 windows環境下搭建創建的第一個安卓應用程序  
「視頻直播技術詳解」系列之六:現代播放器原理, 關於直播的技術文章不少,成體系的不多。我們將用七篇文章,更系統化地介紹當下大熱的視頻直播各環節的關鍵技術,幫助視頻直播創
AsyncTask基礎(筆記) 安卓異步任務 ---AsyncTask 為什麼要異步任務: 1.Android單線程模型 2.耗時操作放在非主線程中執行 Asyn
android實現倒計時,android倒計時前言 在打開愛奇藝等app的歡迎界面的時候,右上角有一個倒計時的控件。倒計時完了以後進入主界面。現在我們來實現這