Android 可扩展列表视图don';t扩展
我正在尝试对ExpandableLisTview进行个性化设置 我创造Android 可扩展列表视图don';t扩展,android,android-widget,expandablelistview,expandablelistadapter,Android,Android Widget,Expandablelistview,Expandablelistadapter,我正在尝试对ExpandableLisTview进行个性化设置 我创造 Xml:使用ExpandableList视图 xml:带有简单文本视图和按钮的相对布局 xml:一个只包含一个文本视图的相对布局 类别: package Android.MyExapandableListView; import android.app.Activity; import android.app.ExpandableListActivity; import android.os.Bundle; impo
- Xml:使用ExpandableList视图
- xml:带有简单文本视图和按钮的相对布局
- xml:一个只包含一个文本视图的相对布局
package Android.MyExapandableListView;
import android.app.Activity;
import android.app.ExpandableListActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ExpandableListView.ExpandableListContextMenuInfo;
public class main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.iterator);
ExpandableListView lv =
(ExpandableListView) this.findViewById(R.id.ExpandableListView);
MyExpandableListAdapter questions = new MyExpandableListAdapter();
lv.setAdapter(questions);
}
public class MyExpandableListAdapter extends BaseExpandableListAdapter {
private LayoutInflater inflater = null;
private String[] groups = { "People Names", "Dog Names", "Cat Names",
"Fish Names" };
private String[][] children = { { "Arnold", "Barry", "Chuck", "David" },
{ "Ace", "Bandit", "Cha-Cha", "Deuce" }, { "Fluffy", "Snuggles" },
{ "Goldy", "Bubbles" } };
public MyExpandableListAdapter(){
this.inflater = main.this.getLayoutInflater();
}
public Object getChild(int groupPosition, int childPosition) {
return children[groupPosition][childPosition];
}
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
public int getChildrenCount(int groupPosition) {
return children[groupPosition].length;
}
public Object getGroup(int groupPosition) {
return groups[groupPosition];
}
public int getGroupCount() {
return groups.length;
}
public long getGroupId(int groupPosition) {
return groupPosition;
}
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
convertView = inflater.inflate(R.layout.child, null);
TextView question = (TextView) convertView.findViewById(R.id.nomChild);
question.setText(getChild(groupPosition, childPosition).toString());
return convertView;
}
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
// TextView textView = getGenericView();
// textView.setText(getGroup(groupPosition).toString());
convertView = inflater.inflate(R.layout.group, null);
TextView question = (TextView) convertView.findViewById(R.id.nomGroup);
question.setText(getGroup(groupPosition).toString());
return convertView;
}
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
public boolean hasStableIds() {
return true;
}
}
}
问题是我可以正确地获取项目,但当我尝试扩展组时,它不起作用
有什么想法吗
编辑:视图 迭代器.XML
<?xml version="1.0" encoding="utf-8"?>
<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/ExpandableListView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
>
</ExpandableListView>
</LinearLayout>
Group.XML
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<RelativeLayout
android:id="@+id/widget29"
android:layout_width="305px"
android:layout_height="41px"
android:layout_x="8px"
android:layout_y="29px">
<TextView
android:id="@+id/nomGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
>
</TextView>
<Button
android:id="@+id/widget31"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
>
</Button>
</RelativeLayout>
</AbsoluteLayout>
Child.XML
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<RelativeLayout
android:id="@+id/nomChild"
android:layout_width="305px"
android:layout_height="41px"
android:layout_x="8px"
android:layout_y="29px"
>
<TextView
android:id="@+id/widget30"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
>
</TextView>
</RelativeLayout>
</AbsoluteLayout>
我们无法访问您的视图,因此我将您的代码更改为使用硬编码文本视图,对我来说效果很好。看一看,也许你能在我们看不到的地方发现一个错误
public class Main extends Activity {
class MyExpandableListAdapter extends BaseExpandableListAdapter {
private String[] groups = { "People Names", "Dog Names", "Cat Names", "Fish Names" };
private String[][] children = { { "Arnold", "Barry", "Chuck", "David" },
{ "Ace", "Bandit", "Cha-Cha", "Deuce" },
{ "Fluffy", "Snuggles" }, { "Goldy", "Bubbles" } };
public Object getChild(int groupPosition, int childPosition) {
return children[groupPosition][childPosition];
}
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
public int getChildrenCount(int groupPosition) {
return children[groupPosition].length;
}
public View getChildView(int groupPosition,
int childPosition,
boolean isLastChild,
View convertView,
ViewGroup parent) {
TextView question = new TextView(Main.this);
question.setText(getChild(groupPosition, childPosition).toString());
return question;
}
public Object getGroup(int groupPosition) {
return groups[groupPosition];
}
public int getGroupCount() {
return groups.length;
}
public long getGroupId(int groupPosition) {
return groupPosition;
}
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
TextView question = new TextView(Main.this);
question.setText(getGroup(groupPosition).toString());
return question;
}
public boolean hasStableIds() {
return true;
}
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ExpandableListView lv = new ExpandableListView(this);
MyExpandableListAdapter questions = new MyExpandableListAdapter();
lv.setAdapter(questions);
LinearLayout ll = new LinearLayout(this);
setContentView(ll);
ll.addView(lv);
}
}
您是否在按钮定义中添加了
android:focusable=“false”
?这解决了我类似的行为
<Button
android:id="@+id/widget31"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:focusable="false"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true">
</Button>
它也应该适用于,但我正在尝试使用XML文件:(您找到解决方案了吗?我遇到了完全相同的问题。