在android中布局很重要,下面总结下布局的三种形式

①.在Activity的onCreate()方法中进行添加比如: setContentView(R.layout.activity_main);或者

setContentView(this.getResources().getIdentifier("homeleftmenu_layout", "layout", this.getPackageName()) );

②此种情况多用在适配器中进行加载,如下:

一种方法是用View.inflate()方法;

代码说明:前提是自定义了一个参数: private Context context;

@override代码是自定义一个适配器CalendarAdapter extends BaseAdapter中的getView()方法中来添加一个自定义的布局

calendar_cell_layout.xml.

@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubViewHolder holder = null;if (convertView == null) { convertView = View.inflate(context,R.layout.calendar_cell_layout,null);holder = new ViewHolder();holder.dayTextView = (TextView)convertView.findViewById(R.id.jkdayid);holder.dayNLTextView = (TextView)convertView.findViewById(R.id.jkday_nlid);holder.isdataImageView = (ImageView)convertView.findViewById(R.id.isdataid);convertView.setTag(holder);} else {holder = (ViewHolder) convertView.getTag();}
public class ViewHolder {public TextView dayTextView;public TextView dayNLTextView;public ImageView isdataImageView;}
另外一种形式如下:用LayoutInflater.from(Context).inflate()方法。
代码说明:是一个自定义的 class DeviceListAdapter extends BaseAdapter中的override的getView()方法。
@Overridepublic View getView(int position, View convertView, ViewGroup parent) {if (convertView == null) {convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.list_bluetooth_item, null);viewHolder = new ViewHolder();viewHolder.tv_devName = (TextView) convertView.findViewById(R.id.tv_blueth_name);viewHolder.tv_devAddress = (TextView) convertView.findViewById(R.id.tv_blueth_location);viewHolder.tv_devStatus=(TextView)convertView.findViewById(R.id.tv_blueth_status);convertView.setTag(viewHolder);} else {convertView.getTag();}}}class ViewHolder {TextView tv_devName, tv_devAddress,tv_devStatus;}

③写一个简单的方法来创建一个view对象:

private View initView() {// TODO Auto-generated method stubTextView textView = new TextView(this);textView.setText("title");textView.setTextSize(20);textView.setTextColor(Color.RED);textView.setGravity(Gravity.CENTER);LinearLayout ll = new LinearLayout(this);LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);ll.setBackgroundColor(Color.WHITE);ll.addView(textView, params);return ll;}

④这种方法也是在适配器中进行创建的,关键代码部分如下:

说明:自定义一个适配器继承BaseAdapter,其中的context是要使用这个适配器的一个Activity, scene_layers_item是布局文件的名称,其中的iten_tv ,和item_cb是id,list是 List> .

@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubViewHolder holder;if(convertView == null){holder = new ViewHolder();convertView = inflater.inflate(context.getResources().getIdentifier("scene_layers_item", "layout",context.getApplication().getPackageName()), null);holder.tv = (TextView)convertView.findViewById(context.getResources().getIdentifier("item_tv", "id",context.getApplication().getPackageName()));holder.cb= (CheckBox)convertView.findViewById(context.getResources().getIdentifier("item_cb", "id",context.getApplication().getPackageName()));holder.cb.setVisibility(View.VISIBLE);convertView.setTag(holder);}else{holder = (ViewHolder)convertView.getTag();}HashMap itemMap = list.get(position);if(itemMap != null){String layname = (String)itemMap.get("nameshow");if(layname != null){holder.tv.setText(layname);}holder.cb.setChecked((Boolean)itemMap.get("isshow"));}return convertView;}public class ViewHolder {public TextView tv = null;        public CheckBox cb = null;}

⑤其实在对各种布局都熟悉的情况下,采用自定义布局,对android系统提供的view进行继承,重写其中的方法,达到想要的效果后,然后在需要的地方进行引用。

以上均来自个人总结,如有不妥当之处,还烦请各位编程爱好者批评指正,共同进步!!!



   
   


更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. android 下拉列表(Spinner)的学习与应用
  5. Android小技巧&Android(安卓)Studio快捷键(不定时更新)
  6. android adb 启动各种应用
  7. android 取消标题,程序意外停止
  8. android学习日志六
  9. [学习记录]android 状态栏背景修改为透明

随机推荐

  1. 简单介绍SQL Server中的自旋锁
  2. sqlserver数据库优化解析(图文剖析)
  3. 自增长键列统计信息的处理方法
  4. 如何在SQL Server中使用随机记录集
  5. 如何在SQL Server 2014中用资源调控器压
  6. SQL Server把某个字段的数据用一条语句转
  7. SQL Server根据分区表名查找所在的文件及
  8. SQL Server中使用Trigger监控存储过程更
  9. SQL Server查询数据库中表使用空间信息实
  10. SQL Server中通配符的使用示例