关于ListView嵌套双层布局
2016-05-07 20:07
686 查看
有些功能需要在ListView中嵌套双层布局,之后百度了一下方法,取代了双层ListView的嵌套
Adapter
Activity
Adapter
import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ListAdapter; import android.widget.TextView; import com.czh.bean.GrantManagerBean; import com.czh.ctmsystem.R; import java.util.ArrayList; public class GrantManagerAdapter extends BaseAdapter implements ListAdapter { ArrayList<GrantManagerBean> mArrayList; private Context context; public GrantManagerAdapter(Context context, ArrayList<GrantManagerBean> mArrayList) { super(); this.mArrayList = mArrayList; this.context = context; } @Override public int getItemViewType(int position) { GrantManagerBean a = mArrayList.get(position); if (a.getA().equals("a")) { return 0; } else { return 1; } } // 告诉Adapter可以加载两个布局 @Override public int getViewTypeCount() { return 2; } @Override public int getCount() { return mArrayList.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); GrantManagerBean bean = mArrayList.get(position); if (type == 0) { View view = View.inflate(context, R.layout.adapter_grant_manager_up, null); TextView tv_title = (TextView) view .findViewById(R.id.adapter_grant_manager_up_tv); tv_title.setText(bean.getTittleName()); return view; } else { ViewHolder vh = null; if (convertView == null) { vh = new ViewHolder(); convertView = View.inflate(context, R.layout.adapter_grant_manager_down, null); vh.adapter_grant_manager_down_name = (TextView) convertView .findViewById(R.id.adapter_grant_manager_down_name); vh.adapter_grant_manager_down_job = (TextView) convertView .findViewById(R.id.adapter_grant_manager_down_job); vh.adapter_grant_manager_down_phone = (TextView)convertView.findViewById(R.id.adapter_grant_manager_down_phone); convertView.setTag(vh); } else { vh = (ViewHolder) convertView.getTag(); } vh.adapter_grant_manager_down_name.setText(bean.getUserName()); vh.adapter_grant_manager_down_job.setText(bean.getJob()); vh.adapter_grant_manager_down_phone.setText(bean.getPhone()); } return convertView; } private class ViewHolder { TextView adapter_grant_manager_down_name; TextView adapter_grant_manager_down_job; TextView adapter_grant_manager_down_phone; } }
Activity
public class MainActivity extends Activity { private ListView act_grant_manager_lv; private ArrayList<Bean> mArrayList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_grant_manager); initView();//初始化布局控件 initData();//模拟数据 initViewOper();//将数据和视图控件进行绑定 } private void initViewOper() { act_grant_manager_lv.setAdapter(new GrantManagerAdapter(GrantManagerActivity.this,mArrayList)); act_grant_manager_lv.setOnItemClickListener(this); } private void initData() {
mArrayList = new ArrayList<Bean>(); mArrayList.add(new Bean("a", "a", "", "", "")); mArrayList.add(new Bean("", "", "aa", "aaa", "13333333333")); } private void initView() { act_grant_manager_lv = fView(R.id.act_grant_manager_lv); } }
布局文件
activity_grant_manager.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ListView android:id="@+id/act_grant_manager_lv" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/white" android:divider="@color/background" android:dividerHeight="1px" android:scrollbars="none" /> </LinearLayout>
adapter_grant_manager_down_phone.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="vertical" android:padding="10dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="5dp"> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="姓名 : " /> <TextView android:id="@+id/adapter_grant_manager_down_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="3dp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="职务 : " /> <TextView android:id="@+id/adapter_grant_manager_down_job" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="3dp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="5dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="手机 : " /> <TextView android:id="@+id/adapter_grant_manager_down_phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="3dp" /> </LinearLayout> </LinearLayout>
adapter_grant_manager_up.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#d4e6ff" android:orientation="horizontal"> <TextView android:layout_width="5dp" android:layout_height="match_parent" android:background="@color/home_title" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp"> <TextView android:id="@+id/adapter_grant_manager_up_tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" /> </LinearLayout> </LinearLayout>
相关文章推荐
- iOS开发代码规范(通用)
- 初识HTTP协议
- Eclipse中使用JNI编写C代码时出现“Unresolved inclusion: <***.h>”的解决方案
- 对象在使用之前的初始化
- uva524
- Bloomberg 的一些功能
- 1234: ZJTZYRC筛offer(并查集 )
- Search Insert Position
- POJ 2236 Wireless Network【并查集】
- 关于机器学习会议的点评
- mybatis缓存学习笔记
- HTTP 请求:GET vs. POST
- 反射 类加载与垃圾回收
- mybatis缓存学习笔记
- Codeforces Round #350 (Div. 2) C. Cinema
- BZOJ 2055:80人环游世界
- 【VS开发】内存泄漏相关问题
- Spring面试题和答案
- echartsJS初探--图形报表
- CSS position属性详解