gpt4 book ai didi

android - ExpandableList View 不展开

转载 作者:太空狗 更新时间:2023-10-29 13:41:17 25 4
gpt4 key购买 nike

我正在尝试个性化 ExpandableLisTview

我创造

  • Iterator.Xml:带有 ExpandableList View
  • group.xml:具有简单 TextView 和 Button 的相对布局
  • Child.xml:只有一个textView的相对布局

类:

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>

组.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>

子类.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>

最佳答案

我们无权访问您的 View ,因此我更改了您的代码以使用硬编码的 TextView,它对我来说工作正常。看一看,也许您可​​以发现我们看不到的错误。

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 - ExpandableList View 不展开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5522480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com