gpt4 book ai didi

android - ExpandableListView onChildClickListener

转载 作者:太空宇宙 更新时间:2023-11-03 11:52:29 25 4
gpt4 key购买 nike

我是安卓新手。

我在使用 ExpandableListViewAdapter 时遇到了问题。

当我点击编辑文本框时,onChildClickListener 不工作。

我的问题是它是否适用于编辑文本框。

我正在实现 BaseExpandableListAdapter。

提前致谢。

public class TryExpandableListViewActivity extends Activity implements     OnChildClickListener {

LinearLayout llayout;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

llayout = (LinearLayout) findViewById(R.id.llayout);

ExpandableListView list = new ExpandableListView(this);
list.setGroupIndicator(null);
list.setChildIndicator(null);
String[] titles = {"A","B","C"};
String[] fruits = {"a1","a2"};
String[] veggies = {"b1","b2","b3"};
String[] meats = {"c1","c2"};
String[][] contents = {fruits,veggies,meats};
SimplerExpandableListAdapter adapter = new SimplerExpandableListAdapter(this,titles, contents);

list.setAdapter(adapter);

llayout.addView(list);

list.setOnChildClickListener(this);
}

@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
Log.i("Test","-------------------------------------------");
return false;
}

class SimplerExpandableListAdapter extends BaseExpandableListAdapter {

private Context mContext;
private String[][] mContents;
private String[] mTitles;

public SimplerExpandableListAdapter(Context context, String[] titles, String[][] contents) {
super();
if(titles.length != contents.length) {
throw new IllegalArgumentException("Titles and Contents must be the same size.");
}
mContext = context;
mContents = contents;
mTitles = titles;

}

@Override
public Object getChild(int groupPosition, int childPosition) {
return mContents[groupPosition][childPosition];
}

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

@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {

EditText row = (EditText)convertView;
if(row == null) {
row = new EditText(mContext);
}
row.setTypeface(Typeface.DEFAULT_BOLD);
row.setText(mContents[groupPosition][childPosition]);
return row;

}

@Override
public int getChildrenCount(int groupPosition) {
return mContents[groupPosition].length;
}

@Override
public Object getGroup(int groupPosition) {
return mContents[groupPosition];
}

@Override
public int getGroupCount() {
return mContents.length;
}

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

@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
TextView row = (TextView)convertView;
if(row == null) {
row = new TextView(mContext);
}
row.setTypeface(Typeface.DEFAULT_BOLD);
row.setText(mTitles[groupPosition]);
return row;
}

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

@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}

最佳答案

在没有看到代码的情况下,这只是一个猜测,但是 childCLickListener 可能正在使用该事件,因此它没有到达编辑文本,请尝试在 childClickListener 中返回 false

编辑

好吧,我刚刚用您的代码创建了一个小项目,但我无法触发 onCildClickListener,将其更改为 TextView 后效果很好。它与 EditText 有关(可能是它消耗了事件,或者它没有注册为点击,而是注册为焦点的变化,但我只是在猜测这一点)。

所以在回答您的问题时,是否可能 - 我认为不可能。但我确实做了一个可能有用的小解决方法。

onTouchListener() 附加到 EditText 并检查 MotionEvent.ACTION_DOWN

关于android - ExpandableListView onChildClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8759291/

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