您的位置:首页 > 其它

关于ListView嵌套双层布局

2016-05-07 20:07 686 查看
有些功能需要在ListView中嵌套双层布局,之后百度了一下方法,取代了双层ListView的嵌套

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: