`
zhangjinpeng
  • 浏览: 2332 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

android分开布局

阅读更多
android自定义ListView
2010-01-22 11:32
public class PeoplesAdapter extends BaseAdapter {

private Context context;
private LinearLayout peopleLineLayout;
private EditText headTxtSearch;


public PeoplesAdapter(Context c) {
   this.context = c;
   mInflater = (LayoutInflater) c
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

private ArrayList<PeopleVO> peoples = null;
private LayoutInflater mInflater = null;

@Override
public int getCount() {
   if (peoples != null) {
    return peoples.size();
   } else {
    return 0;
   }

}

@Override
public Object getItem(int position) {
   return position;
}

@Override
public long getItemId(int position) {
   return position;
}

private static class ViewHolder {
   ImageView imgCheck;
   TextView txtName;
   TextView txtMobile;
   TableLayout peopleTableLayout;
   PeopleVO people;
}

@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.list_people, null);
    holder.imgCheck = (ImageView) convertView
      .findViewById(R.id.imgCheck);
    holder.txtName = (TextView) convertView
      .findViewById(R.id.txtPeopleName);
    holder.txtMobile = (TextView) convertView
      .findViewById(R.id.txtPeopleMobile);
   } else {
    holder = (ViewHolder) convertView.getTag();
   }
   PeopleVO currentPeople = peoples.get(position);
   holder.txtName.setText(currentPeople.name);
   holder.txtMobile.setText(currentPeople.mobile);
   holder.people = currentPeople;
   convertView.setTag(holder);
   convertView.setOnClickListener(viewOnClick);
 
   return convertView;
}

View.OnClickListener viewOnClick = new View.OnClickListener() {

   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    v.setSelected(true);
    ImageView imgView = (ImageView) v.findViewById(R.id.imgCheck);
    ViewHolder holder = (ViewHolder) v.getTag();
    PeopleVO people = holder.people;
    if (people.isSelect) {
     imgView.setImageResource(R.drawable.checkbox_off_background);
    } else {
     imgView.setImageResource(R.drawable.checkbox_on_background);
    }
    people.isSelect = !people.isSelect;
   }

};

public ArrayList<PeopleVO> getPeoples() {
   return peoples;
}

public void setPeoples(ArrayList<PeopleVO> peoples) {
   this.peoples = peoples;
   notifyDataSetChanged();
}

public void addPeople(PeopleVO people) {
   if (peoples == null) {
    peoples = new ArrayList();
   }
   peoples.add(people);
}

Activity 继承 ListActivity

在onCreate中设置Adapter

setListAdapter(new PeoplesAdapter (this));

list_people.xml:

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="horizontal" android:layout_width="fill_parent"
   android:layout_height="wrap_content">

   <ImageView android:layout_width="wrap_content"
    android:layout_height="fill_parent" android:id="@+id/imgCheck" android:src="@drawable/checkbox_off_background" />

   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:layout_weight="8">
    <TextView android:id="@+id/txtPeopleName"
     android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="32px" />

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="horizontal" android:layout_width="fill_parent"
     android:layout_height="fill_parent">
     <TextView android:layout_width="wrap_content"
      android:layout_height="wrap_content" android:text="手机:" />
     <TextView android:layout_width="fill_parent" android:id="@+id/txtPeopleMobile"
      android:layout_height="wrap_content" />
    </LinearLayout>

   </LinearLayout>
</LinearLayout>

效果如下:
分享到:
评论

相关推荐

    Android六大布局

    布局最终是用户看到的界面,Android的应用采用了典型的MVC结构,而布局就是MVC中的View,这种View通过单独的xml文件配置,与代码分开,当然也可以通过代码来设置布局;在Android4.0之后有六大布局,分别为:...

    Android Studio 界面布局之xml文件中给输入框editText修改下划线颜色 / 为按钮设置圆角和颜色 / 约束布局预览效果和运行效果不一致 问题的解决

    Android Studio 在xml文件中设置界面布局1、xml文件中给输入框editText修改下划线颜色2、设置button按钮为圆角及修改按钮颜色3、运用约束布局时预览效果和运行效果不一致 写一写今天困扰我很久的问题:如何给...

    Android ListView加载不同布局.解决异常ClassCastException

    最好将数据和布局ID分开管理。 5. **优化性能** - **ViewHolder模式**:为了进一步提高性能,可以使用ViewHolder模式。ViewHolder是一个简单的类,持有ListView项视图中的各个组件引用。通过缓存这些引用,可以...

    android起航 Beginning Android

    1. **代码分离**:XML布局将界面设计与业务逻辑分开,使得代码更易于理解和维护。 2. **工具支持**:IDE如Eclipse或图形设计工具如DroidDraw,支持直接通过GUI创建XML布局,简化了界面设计过程。 3. **可读性**:XML...

    android开发拖动view集成类。

    1.非常简单的一个类,用于在android开发中拖动View(可以是imageView或者viewGroup) 2.有两种构造方法,可以只监听一个图片,然后移动此图片。也可以将监听和移动的view分开。 3.里面的注释,若乱码,可能是编码...

    Android布局自定义Shap圆形ImageView可以单独设置背景与图片

    需求要实现布局中为圆形图片,图片背景与图标分开且合并到一个ImageView。 二、具体实现: XML中布局中定义ImageView,关健设置两个参数 Android:backgroup(设置背景),Android:src(设置ImageVIew中图片),圆形...

    一个android桌面滑动切换屏幕的控件(二)

    首先,ScrollView是一个可滚动的布局容器,它可以包含单个直接子视图,并允许用户上下滚动。然而,ScrollView并不支持水平滑动,因此不适合用于实现横向切换屏幕的效果。 接着,ViewPager是Android提供的一个用于在...

    Android自定义Button按钮显示样式

    接下来,只需要在布局文件中将 Button 控件的 Background 属性设置为刚刚创建的 XML 文件,即可实现自定义的 Button 按钮显示样式。代码如下: ```xml &lt;Button android:id="@+id/button1" android:layout_width=...

    Android车牌识别源代码EasyPR_Android-master

    1. **Android开发基础**:首先,你需要具备基本的Android应用开发技能,了解Java或Kotlin编程语言,掌握Android Studio IDE的使用,以及对AndroidManifest.xml、布局文件、Activity、Intent等基本概念的理解。...

    Android应用程序资源管理框架 PPT

    代码和资源分开可以使得应用程序在运行时根据实际需要来组织UI。这样就可使得应用程序只需要编译一次,就可以支持不同的UI布局。这种特性使得应用程序在运行时可以适应不同的屏幕大小和密度,以及不同的国家和语言等...

    Android 游戏 Demo 学习

    熟悉其界面、布局以及如何创建新项目是入门的第一步。 2. **Java或Kotlin编程语言**: Android游戏通常使用Java或Kotlin编写。Java是Android平台的传统语言,而Kotlin现在已成为官方推荐的首选语言,因其简洁、安全...

    关于我们-VUE模板 UNIAPP模板 布局、样式、JS分离

    Vue.js是一个轻量级的、声明式的JavaScript框架,而UniApp则在Vue的基础上,提供了更丰富的组件库和API,支持跨平台开发,包括iOS、Android、H5以及小程序等。 在创建“关于我们”页面时,通常我们需要考虑页面的...

    Android代码-一款安卓小游戏

    7. **布局设计**: 使用XML文件定义游戏界面的布局,如活动(Activity)、视图(View)和布局(Layout)。这涉及对用户交互的处理,如按钮、触摸事件等。 8. **资源管理**: 游戏中的图片、音频、动画等资源需要妥善...

    基于Android Studio开发视频分享APP源码视频应用APP源码,界面仿bilibili,有后端

    "界面仿bilibili"表明开发者在设计用户界面时参考了Bilibili的风格,这可能涉及到UI/UX设计原则,使用Android的布局组件如LinearLayout、RelativeLayout、ConstraintLayout等创建出类似于Bilibili的界面结构。...

    外文翻译_ANDROID安桌.doc

    1. **代码分离**:XML布局文件将界面设计与业务逻辑分开,使得开发者可以专注于代码的逻辑部分,而设计师可以专注于UI的美观和用户体验。 2. **可视化编辑**:XML布局可以配合集成开发环境(IDE)如Eclipse或...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    Android——本息计算器

    6. 源码结构:在Android项目中,代码通常按照模块化组织,比如将UI逻辑、业务逻辑和数据模型分开。在本压缩包中的"Android-Bank"可能包含了项目的各个源码文件,如MainActivity.java(主活动类)、布局文件XML、资源...

    Android DateTimePicker高大上源码

    在Android原生API中,这两个组件是分开的,开发者需要分别处理。但这个"高大上"的源码可能将它们集成在一个统一的视图中,方便用户一次性选择日期和时间。 该源码可能包含以下关键知识点: 1. 自定义View:由于...

    android经验分享.pdf

    - **注重界面与逻辑的分离**:推荐使用MVVM或MVC架构模式,将界面和业务逻辑分开。 **2.4 界面构建** - **使用抽象的控件类**:例如,TabHost用于管理标签页,提高代码的可重用性和可维护性。 #### 三、Android...

    android 仿美团界面 很全

    - 按照模块化原则组织代码,如将网络请求、数据模型、UI组件等分开管理。 7. **测试与调试**: - 使用单元测试和UI测试确保功能的正确性,如JUnit和Espresso。 - 调试工具如Logcat用于输出日志,便于定位问题。 ...

Global site tag (gtag.js) - Google Analytics