|
羡慕别人做出的手机炫效果吗?我们也来试下吧!
java代码 部分: import java.util.List; import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
import com.iwidsets.clear.manager.R;
import com.iwidsets.clear.manager.adapter.BrowserInfo;
public
class ClearExpandableListAdapter extends BaseExpandableListAdapter {
class ExpandableListHolder {
ImageView appIcon;
TextView appInfo;
CheckBox appCheckBox;
}
private Context context;
private LayoutInflater mChildInflater;
private LayoutInflater mGroupInflater;
private List group;
public ClearExpandableListAdapter(Context c, List group) {
this.context = c;
mChildInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mGroupInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.group = group;
}
public Object getChild(int childPosition, int itemPosition) {
return group.get(childPosition).getChild(itemPosition);
}
public
long getChildId(int childPosition, int itemPosition) {
return itemPosition;
}
@Override
public
int getChildrenCount(int index) {
return group.get(index).getChildSize();
}
public Object getGroup(int index) {
return group.get(index);
}
public
int getGroupCount() {
return group.size();
}
public
long getGroupId(int index) {
return index;
}
public View getGroupView(int position, boolean flag, View view,
ViewGroup parent) {
ExpandableListHolder holder = null;
if (view == null) {
view = mGroupInflater.inflate(
R.layout.browser_expandable_list_item, null);
holder = new ExpandableListHolder();
holder.appIcon = (ImageView) view.findViewById(R.id.app_icon);
view.setTag(holder);
holder.appInfo = (TextView) view.findViewById(R.id.app_info);
holder.appCheckBox = (CheckBox) view
.findViewById(R.id.app_checkbox);
} else {
holder = (ExpandableListHolder) view.getTag();
}
GroupInfo info = this.group.get(position);
if (info != null) {
holder.appInfo.setText(info.getBrowserInfo().getAppInfoId());
Drawable draw = this.context.getResources().getDrawable(
info.getBrowserInfo().getImageId());
holder.appIcon.setImageDrawable(draw);
holder.appCheckBox.setChecked(info.getBrowserInfo().isChecked());
}
return view;
}
public
boolean hasStableIds() {
return
false;
}
public
boolean isChildSelectable(int arg0, int arg1) {
return
false;
}
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
ExpandableListHolder holder = null;
if (convertView == null) {
convertView = mChildInflater.inflate(
R.layout.browser_expandable_list_item, null);
holder = new ExpandableListHolder();
holder.appIcon = (ImageView) convertView
.findViewById(R.id.app_icon);
convertView.setTag(holder);
holder.appInfo = (TextView) convertView.findViewById(R.id.app_info);
holder.appCheckBox = (CheckBox) convertView
.findViewById(R.id.app_checkbox);
} else {
holder = (ExpandableListHolder) convertView.getTag();
}
BrowserInfo info = this.group.get(groupPosition)
.getChild(childPosition);
if (info != null) {
holder.appInfo.setText(info.getAppInfoId());
Drawable draw = this.context.getResources().getDrawable(
info.getImageId());
holder.appIcon.setImageDrawable(draw);
holder.appCheckBox.setChecked(info.isChecked());
}
return convertView;
}
}
要想让child获得焦点,只在改
Java代码
public
boolean isChildSelectable(int arg0, int arg1) {
return
true;
}
public boolean isChildSelectable(int arg0, int arg1) { return true; }
browser_expandable_list_item.xml 用于显示每一个ITEM的XML
Xml代码 部分
version="1.0"
encoding="utf-8"?>
<linearlayout </linearlayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
androidrientation="horizontal"
android:minHeight="40px"
android:layout_gravity="center_vertical">
<checkbox </checkbox
android:id="@+id/app_checkbox"
android:focusable="false"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="35px"
android:checked="true"/>
<imageview </imageview
android:id="@+id/app_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
/>
<textview </textview
android:id="@+id/app_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="?android:attr/textColorPrimary"
android:paddingLeft="3px"
android:layout_gravity="center_vertical"
/>
browserlayout.xml 用于显示整个界面
Xml代码
version="1.0"
encoding="utf-8"?>
<linearlayout </linearlayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
androidrientation="vertical">
<expandablelistview </expandablelistview
android:id="@+id/appList"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
/>
<linearlayout </linearlayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:paddingLeft="4dip"
android:paddingRight="4dip"
android:paddingBottom="1dip"
android:paddingTop="5dip"
android:background="@android:drawable/bottom_bar"
android:id="@+id/app_footer">
<button </button
android:layout_weight="1"
android:id="@+id/btn_export"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:text="@string/clear">
<button </button
android:layout_weight="1"
android:id="@+id/btn_sel_all"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:text="select_all">
<button </button
android:layout_weight="1"
android:id="@+id/btn_desel_all"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:text="deselect_all">
BrowserInfo用于提供一个项的信息
Java代码
public
class BrowserInfo {
private
int appInfoId;
private
int imageId;
private
boolean checked;
public BrowserInfo(int appInfoId, int imageId, boolean checked) {
this.appInfoId = appInfoId;
this.imageId = imageId;
this.checked = checked;
}
public
boolean isChecked() {
return checked;
}
public
void setChecked(boolean checked) {
this.checked = checked;
}
public
int getAppInfoId() {
return appInfoId;
}
public
void setAppInfoId(int appInfoId) {
this.appInfoId = appInfoId;
}
public
int getImageId() {
return imageId;
}
public
void setImageId(int imageId) {
this.imageId = imageId;
}
}
GroupInfo 用于显示一个组的信息
Java代码 部分:
import java.util.List;
public
class GroupInfo {
private BrowserInfo group;
private List
child;
public GroupInfo(BrowserInfo group, List
child) {
this.group = group;
this.child = child;
}
public
void add(BrowserInfo info){
child.add(info);
}
public
void remove(BrowserInfo info){
child.remove(info);
}
public
void remove(int index){
child.remove(index);
}
public
int getChildSize(){
return child.size();
}
public BrowserInfo getChild(int index){
return child.get(index);
}
public BrowserInfo getBrowserInfo() {
return group;
}
public
void setBrowserInfo(BrowserInfo group) {
this.group = group;
}
public List
getChild() {
return child;
}
public
void setChild(List
child) {
this.child = child;
}
}
最后就是把要显示的内容显示出来的。
学会了吗?赶快来试试吧! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|