gpt4 book ai didi

android - OnChildClickListener 在可扩展 ListView 中不起作用

转载 作者:行者123 更新时间:2023-11-29 20:31:26 24 4
gpt4 key购买 nike

我不知道这段代码有什么问题,我的 onChildClickListener() 没有被调用 我看到一些答案,他们说覆盖 isChildSelected 并返回 true;我也试过了,但仍然没有被调用。任何人都可以帮助我吗?任何帮助,将不胜感激。谢谢。

public class Expand {
Context context;

private RelativeLayout relativeLayout;
private String[] headerText;
String[] secondHeaderTitle;
int[] secondHeaderVisibilty;
String[][] drdatewise;
String[][] spec;
ExpandableListView listView;
ExampleAdapter adapter;

public TextView secondHeader;

public Expand(Context context, String headerText[],
String[] secondHeaderTitle, int[] secondHeaderVisibilty,
String[][] drdatewise, String[][] spec) {
this.context = context;
this.headerText = headerText;
this.secondHeaderTitle = secondHeaderTitle;
this.secondHeaderVisibilty = secondHeaderVisibilty;
secondHeader = new TextView(context);
this.drdatewise = drdatewise;
this.spec = spec;

}

public View GetView() {

List<GroupItem> items = new ArrayList<GroupItem>();

// Populate our list with groups and it's children
for (int i = 0; i < headerText.length; i++) {
GroupItem item = new GroupItem();

item.title = headerText[i];

for (int j = 0; j < drdatewise[i].length; j++) {
ChildItem child = new ChildItem();
child.title1String = drdatewise[i][j];
child.title2String = spec[i][j];
child.title3String = "Class A";
child.title4String = "Mumbai";
item.items.add(child);
}

items.add(item);
}
adapter = new ExampleAdapter(context);
adapter.setData(items);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

relativeLayout = (RelativeLayout) inflater.inflate(
R.layout.activity_main_gb, null);

listView = (ExpandableListView) relativeLayout
.findViewById(R.id.listView);
listView.setAdapter(adapter);
listView.setOnChildClickListener(new OnChildClickListener() {

@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
// TODO Auto-generated method stub
Toast.makeText(context, "Mine mine minemie n", Toast.LENGTH_SHORT).show();
return true;
}
});
return relativeLayout;
}

private class ExampleAdapter extends BaseExpandableListAdapter {
private LayoutInflater inflater;

private List<GroupItem> items;
View convertView;

public ExampleAdapter(Context context) {
inflater = LayoutInflater.from(context);
}

public void setData(List<GroupItem> items) {
this.items = items;
}

@Override
public ChildItem getChild(int groupPosition, int childPosition) {
return items.get(groupPosition).items.get(childPosition);
}

@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}

@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
ChildHolder holder;
ChildItem item = getChild(groupPosition, childPosition);
this.convertView = convertView;
if (convertView == null) {
holder = new ChildHolder();
convertView = inflater.inflate(R.layout.child_view_cal, parent,
false);
holder.title1 = (TextView) convertView
.findViewById(R.id.childtextview1);
holder.title2 = (TextView) convertView
.findViewById(R.id.childtextview2);
holder.title3 = (TextView) convertView
.findViewById(R.id.childtextview3);
holder.title4 = (TextView) convertView
.findViewById(R.id.childtextview4);
convertView.setTag(holder);

} else {
holder = (ChildHolder) convertView.getTag();
}

holder.title1.setText(item.title1String);
holder.title2.setText(item.title2String);
holder.title3.setText(item.title3String);
holder.title4.setText(item.title4String);

return convertView;
}

@Override
public int getChildrenCount(int groupPosition) {
return items.get(groupPosition).items.size();
}

@Override
public GroupItem getGroup(int groupPosition) {
return items.get(groupPosition);
}

@Override
public int getGroupCount() {
return items.size();
}

@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}

@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
GroupHolder holder;
GroupItem item = getGroup(groupPosition);
if (convertView == null) {
holder = new GroupHolder();
convertView = inflater.inflate(R.layout.parent_view_cal,
parent, false);
holder.title = (TextView) convertView
.findViewById(R.id.headertextview);
holder.patches = (TextView) convertView
.findViewById(R.id.headertextview2223);
holder.count = (TextView) convertView
.findViewById(R.id.headertextview223);

convertView.setTag(holder);
} else {
holder = (GroupHolder) convertView.getTag();
}

holder.title.setText(item.title);
int countD = getChildrenCount(groupPosition);
holder.count.setText("" + countD);
holder.patches.setText("1");
return convertView;
}

@Override
public boolean hasStableIds() {
return true;
}

@Override
public boolean isChildSelectable(int arg0, int arg1) {
return true;
}

}

private static class GroupHolder {
TextView title;
TextView patches;
TextView count;
}

private static class GroupItem {
String title;
String secondHeaderTitle;
List<ChildItem> items = new ArrayList<ChildItem>();
}

private static class ChildItem {
String title1String;
String title2String;
String title3String;
String title4String;
}

private static class ChildHolder {
TextView title1;
TextView title2;
TextView title3;
TextView title4;
}
}

subview

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:orientation="vertical"
tools:context=".MainActivity" >

<LinearLayout
android:id="@+id/upperlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#E3ECF5"
android:gravity="center_vertical"
android:orientation="horizontal" >

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:paddingTop="13dp" >

<ImageView
android:id="@+id/childImage"
android:layout_width="58dp"
android:layout_height="58dp"
android:layout_gravity="left"
android:src="@drawable/ic_account_box_black_48dp" />
</LinearLayout>

<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:gravity="left"
android:orientation="vertical"
android:paddingBottom="10dp"
android:paddingTop="10dp" >

<TextView
android:id="@+id/childtextview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Data1"
android:textColor="#424242"
android:textSize="18sp"
android:textStyle="bold" />

<TextView
android:id="@+id/childtextview2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Data2"
android:textColor="#424242"
android:textSize="16sp"
android:textStyle="normal" />

<TextView
android:id="@+id/childtextview3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Data3"
android:textColor="#424242"
android:textSize="14sp"
android:textStyle="normal" />

<TextView
android:id="@+id/childtextview4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Data4"
android:textColor="#424242"
android:textSize="14sp"
android:textStyle="normal" />
</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:paddingTop="13dp" >

<TextView
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:text="11:00" />
</LinearLayout>
</LinearLayout>

<View
android:layout_width="match_parent"
android:layout_height="4dp"
android:layout_below="@+id/upperlayout"
android:background="#FFFFFF" />

</RelativeLayout>

最佳答案

子布局中的 ImageView 和可能的 TextView 可能会拦截点击事件。在您的 XML 中,尝试将 android:focusable="false" 添加到所有这些元素。

关于android - OnChildClickListener 在可扩展 ListView 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31872662/

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