自定义xml为每个项view
public class TreeViewAdapter extends BaseExpandableListAdapter{
private LayoutInflater inflater;
public TreeViewAdapter (Context c) {
this.inflater = LayoutInflater.from(c);
}
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
View myView = inflater.inflate(R.layout.xxx, null);
if(childPosition==XX){
myView.setBackgroundDrawable(XXX图片)
}
}
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
//跟上面一样判断groupPosition
}
}
高亮的话设置选中的监听就可以了
public class TreeViewAdapter extends BaseExpandableListAdapter{
private LayoutInflater inflater;
public TreeViewAdapter (Context c) {
this.inflater = LayoutInflater.from(c);
}
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
View myView = inflater.inflate(R.layout.xxx, null);
if(childPosition==XX){
myView.setBackgroundDrawable(XXX图片)
}
}
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
//跟上面一样判断groupPosition
}
}
高亮的话设置选中的监听就可以了
解决方案 »
- android程序运行时遇到的一个问题,急。。。。
- android 程序怎么默认或者说允许安装到sd卡
- Android应用层界面如何实时显示C/C++层的数据信息?
- socket 问题,怎样能够接收数据,并且在没有数据时不阻塞线程?
- 求教,模拟http协议向表单提交用户名密码,404or400错误
- 如何在一个activity中同时显示button和listview?
- JPEG的编码问题和解码问题
- 求一个4.0以上版本的framework.jar
- JQuery Mobile跳转后URL未改变
- 两个GirdView item拖动 数据交换
- andriod如何开发类似口碑那种手机客户端的应用?
- Android AVD不能start
http://hi.baidu.com/linrw/blog/item/69e1eb89b516aabe0f2444e5.html/cmtid/81d88bd5be5973ca51da4b16
这一句。那ConvertView来当作myView,程序崩溃。我的代码如下: public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
ViewGroup parent) {
TextView textView = getGenericView();
textView.setText(getGroup(groupPosition).toString());
///////////////////////////////////////
if(groupPosition==1){
convertView.setBackgroundResource(R.drawable.bg);
}
if(groupPosition==2){
convertView.setBackgroundResource(R.drawable.bg2);
}
///////////////////////////////////////
return textView;
}
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.TextView;public class TestExpandableList extends Activity {
/** Called when the activity is first created. */
ExpandableListView expandableList;
public String[] groups = { "xxxx好友", "xxxx同学", "xxxxx女人" };
public String[] parent = { "xxxx好友", "xxxx同学" }; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
expandableList = (ExpandableListView) TestExpandableList.this
.findViewById(R.id.ExpandableListView01);
expandableList.setAdapter(new TreeViewAdapter(this));
}
public class TreeViewAdapter extends BaseExpandableListAdapter{
private LayoutInflater inflater;
public TreeViewAdapter (Context c) {
this.inflater = LayoutInflater.from(c);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
View myView = inflater.inflate(R.layout.cc, null);
if(groupPosition==1){
myView.setBackgroundColor(R.drawable.XX);
}
TextView textview=(TextView)myView.findViewById(R.id.TextView001);
textview.setText(parent[groupPosition]);
return myView;
} @Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return 0;
} @Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
return null;
} @Override
public int getChildrenCount(int groupPosition) {
// TODO Auto-generated method stub
return 2;
} @Override
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return null;
} @Override
public int getGroupCount() {
// TODO Auto-generated method stub
return 3;
} @Override
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
return 0;
} @Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
View myView = inflater.inflate(R.layout.dd, null);
if(groupPosition==1){
myView.setBackgroundColor(R.drawable.XX);
}
if(groupPosition==3){
myView.setBackgroundColor(R.drawable.XX);
}
TextView textview=(TextView)myView.findViewById(R.id.TextView01);
textview.setText(groups[groupPosition]);
return myView;
} @Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return false;
} @Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return false;
}
}
}这样我帮你测试了没问题,只限于界面。逻辑代码没写。
和
R.layout.cc是2个xml。你可以在里面自己定义你需要的控件
myView.setBackgroundColor(R.color.heihui);
哈哈,能不能重发一遍。。
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.TextView;public class TestExpandableList extends Activity { ExpandableListView expandableList;
public String[] str1 = { "xxxx好友", "xxxx同学", "xxxxx女人" };
public String[] str2 = { "xxxx好友", "xxxx同学" }; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
expandableList = (ExpandableListView) TestExpandableList.this
.findViewById(R.id.ExpandableListView01);
expandableList.setAdapter(new TreeViewAdapter(this));
} public class TreeViewAdapter extends BaseExpandableListAdapter {
private LayoutInflater inflater;
private LayoutInflater inflater1; public TreeViewAdapter(Context c) {
this.inflater = LayoutInflater.from(c);
this.inflater1 = LayoutInflater.from(c);
} @Override
public Object getChild(int groupPosition, int childPosition) { return childPosition; } @Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return 0;
} @Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
View myView = inflater1.inflate(R.layout.cc, null);
if (childPosition == 0) {
myView.setBackgroundResource(R.drawable.water);
}
if (childPosition == 1) {
myView.setBackgroundResource(R.drawable.water);
}
TextView textview = (TextView) myView
.findViewById(R.id.TextView001);
textview.setText(str2[childPosition]);
return myView;
} @Override
public int getChildrenCount(int groupPosition) {
// TODO Auto-generated method stub
return 2;
} @Override
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return "dd"; } @Override
public int getGroupCount() {
// TODO Auto-generated method stub
return 3;
} @Override
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
} @Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
View myView = inflater.inflate(R.layout.dd, null);
if (groupPosition == 0) {
myView.setBackgroundResource(R.drawable.icon);
}
if (groupPosition == 1) {
myView.setBackgroundResource(R.drawable.waterfour);
}
if (groupPosition == 2) {
myView.setBackgroundResource(R.drawable.icon);
}
TextView textview = (TextView) myView.findViewById(R.id.TextView01);
textview.setText(str1[groupPosition]);
return myView;
} private Object getResources() {
// TODO Auto-generated method stub
return null;
} @Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return false;
} @Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return false;
} }
}
对不起,这次没问题。你要xml代码我也可以给你发,这次绝对的可以哦
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ExpandableListView android:id="@+id/ExpandableListView01"
android:layout_width="fill_parent" android:layout_height="fill_parent"></ExpandableListView>
</LinearLayout> dd.xml<LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="50px"><TextView android:id="@+id/TextView01" android:layout_width="fill_parent" android:layout_height="50px" android:textSize="30px" android:gravity="center"></TextView>
</LinearLayout>
cc.xml<LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="50px" android:orientation="horizontal"><ImageView android:id="@+id/ImageView01" android:layout_height="fill_parent" android:layout_width="100px" android:background="@drawable/icon"></ImageView>
<TextView android:id="@+id/TextView001" android:layout_height="fill_parent" android:layout_width="fill_parent"></TextView>
</LinearLayout>
是这个http://www.eoeandroid.com/forum-viewthread-tid-42715-highlight-ui.html