`

listView

阅读更多
android.R.layout.simple_list_item_1   一行text
就是这个样式里面有一个text


private String[] data = new String[]{"aa","bb"};
listView.setAdapter(new ArrayAdapter<String>(this,				android.R.layout.simple_list_item_1, data));
 listView.setAdapter(adapter);




android.R.layout.simple_list_item_2 --里面有两个text,一个可以当做title,一个可以当做内容

 List<HashMap<String, Object>> data1 = new ArrayList<HashMap<String,Object>>(); 
        for(int i=0;i<data.length;i++){
        	HashMap<String, Object> item = new HashMap<String, Object>();  
        	item.put("num", i);
        	item.put("value", data[i]);
        	data1.add(item);
        }
SimpleAdapter adapter = new SimpleAdapter(this, data1,android.R.layout.simple_list_item_2,  
        		               new String[]{"num","value"}, new int[]{android.R.id.text1,android.R.id.text2});
 listView.setAdapter(adapter);


android.R.layout.simple_list_item_single_choice   单选按钮
这个只是说明按钮的样式是单选的

listView.setAdapter(new ArrayAdapter<String>(this,
		android.R.layout.simple_list_item_single_choice, data));
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); //单选按钮样式也可以设置为多选


android.R.layout.simple_list_item_multiple_choice   多选按钮
同上,就是样子变成了方框而已

listView.setAdapter(new ArrayAdapter<String>(this,
	android.R.layout.simple_list_item_multiple_choice, data));

 listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);//多选按钮样式也可设置单选行为


android.R.layout.simple_list_item_checked   打钩的样式


listView.setAdapter(new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_checked, data));
		listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);



--------------------------------------------------
自定义adapter,这个例子放到了附件中
public class Test2 extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        List<String> list = new ArrayList<String>();
        list.add("hello");
        list.add("world");
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        /**
         * 设置ListActivity的适配器
         */
       setListAdapter(new MyAdapter(Test2.this,list));
        
    }
}
/**
 * 基于BaseAdapter的自定义Adapter
 * @author Administrator
 *
 */
class MyAdapter extends BaseAdapter{

	Context context;
	List<String> titles;
	/**
	 * LayoutInflater 是将layout.xml转化成View的类
	 */
	LayoutInflater lif;
	public MyAdapter(Context context,List<String> titles){
		this.context = context;
		this.titles = titles;
	}
	/**
	 * list总数
	 */
	public int getCount() {
		return titles.size();
	}
	/**
	 * 返回 position项
	 */
	public Object getItem(int position) {
		return null;
	}
	/**
	 * 返回itemId
	 */
	public long getItemId(int position) {
		return position;
	}
	/**
	 * View关键代码
	 */
	public View getView(int position, View convertView, ViewGroup parent) {//position代表rowid
		MyView mv;
		final int pos = position;
		/**
		 * 自定义的view就是修改这个convertView就可以了
		 */
		if(convertView == null){
			mv = new MyView();
			lif = LayoutInflater.from(context);//转化到context这个容器
			convertView = lif.inflate(R.layout.layout, null);//设置要转化的layout文件
			mv.tv = (TextView)convertView.findViewById(R.id.Title);//取得实例
			mv.btn = (Button)convertView.findViewById(R.id.Button01);//取得实例
			convertView.setTag(mv);
		}else{
			mv = (MyView)convertView.getTag();
		}
		mv.tv.setText(titles.get(position));
		mv.btn.setText(titles.get(position));
		/**
		 * 组件的事件也是在这里做
		 */
		mv.btn.setOnClickListener(new Button.OnClickListener(){

			public void onClick(View v) {
				Toast.makeText(context, "我是Title:"+titles.get(pos)+" 的button", Toast.LENGTH_LONG).show();
				
			}
			
		});
		return convertView;
	}
	/**
	 * 自定义的一个View
	 * @author Administrator
	 *
	 */
	private class MyView{
		TextView tv;
		Button btn;
	}
	
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics