Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法在可扩展ListView中实现onChildClick()_Android_Android Layout_Android Listview - Fatal编程技术网

Android 无法在可扩展ListView中实现onChildClick()

Android 无法在可扩展ListView中实现onChildClick(),android,android-layout,android-listview,Android,Android Layout,Android Listview,setOnGroupExpandListener()工作正常,但子节点未调用。可能是什么问题 活动类别: public class MainActivity extends ExpandableListActivity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ExpandableListView

setOnGroupExpandListener()
工作正常,但子节点未调用。可能是什么问题

活动类别:

public class MainActivity extends ExpandableListActivity{

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ExpandableListView expandbleLis = getExpandableListView();
        expandbleLis.setDividerHeight(2);
        expandbleLis.setGroupIndicator(null);
        //expandbleLis.setClickable(true);

        setGroupData();
        setChildGroupData();

        NewAdapter mNewAdapter = new NewAdapter(groupItem, childItem);
        mNewAdapter.setInflater((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE),this);
        getExpandableListView().setAdapter(mNewAdapter);


        expandbleLis.setOnGroupExpandListener(new OnGroupExpandListener()
          {
           public void onGroupExpand(int groupPosition) 
           {
            Log.e("onGroupExpand", "OK");
           }
          });

        expandbleLis.setOnGroupCollapseListener(new OnGroupCollapseListener()
          {
           public void onGroupCollapse(int groupPosition) 
           {
            Log.e("onGroupCollapse", "OK");
           }
          });

        expandbleLis.setOnChildClickListener(new OnChildClickListener()
          {
           @Override
           public boolean onChildClick(ExpandableListView parent, View v,
             int groupPosition, int childPosition, long id) {
            Log.e("OnChildClickListener", "OK");
            return false;
           }
          });
    }

    public void setGroupData() {
        groupItem.add("TechNology");
        groupItem.add("Mobile");
        groupItem.add("Manufacturer");
        groupItem.add("Extras");
    }

    ArrayList<String> groupItem = new ArrayList<String>();
    ArrayList<Object> childItem = new ArrayList<Object>();

    public void setChildGroupData() {
        /**
         * Add Data For TecthNology
         */
        ArrayList<String> child = new ArrayList<String>();
        child.add("Java");
        child.add("Drupal");
        child.add(".Net Framework");
        child.add("PHP");
        childItem.add(child);

        /**
         * Add Data For Mobile
         */
        child = new ArrayList<String>();
        child.add("Android");
        child.add("Window Mobile");
        child.add("iPHone");
        child.add("Blackberry");
        childItem.add(child);
        /**
         * Add Data For Manufacture
         */
        child = new ArrayList<String>();
        child.add("HTC");
        child.add("Apple");
        child.add("Samsung");
        child.add("Nokia");
        childItem.add(child);
        /**
         * Add Data For Extras
         */
        child = new ArrayList<String>();
        child.add("Contact Us");
        child.add("About Us");
        child.add("Location");
        child.add("Root Cause");
        childItem.add(child);
    }


        }
public类MainActivity扩展了ExpandableListActivity{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
ExpandableListView expandbleLis=getExpandableListView();
可膨胀的;可膨胀的;可膨胀的;可膨胀的;
expandbleLis.setGroupIndicator(空);
//expandbleLis.setClickable(真);
setGroupData();
setChildGroupData();
NewAdapter mNewAdapter=新的NewAdapter(groupItem,childItem);
mNewAdapter.setInflater((LayoutInflater)getSystemService(Context.LAYOUT\u INFLATER\u SERVICE),this);
getExpandableListView().setAdapter(mNewAdapter);
expandbleLis.setOnGroupExpandListener(新的OnGroupExpandListener()
{
public void onGroupExpand(int groupPosition)
{
Log.e(“onGroupExpand”、“OK”);
}
});
expandbleLis.setOnGroupCollapseListener(新OnGroupCollapseListener()
{
公共void-onGroupCollapse(int-groupPosition)
{
Log.e(“正常”、“正常”);
}
});
expandbleLis.setOnChildClickListener(新的OnChildClickListener()
{
@凌驾
公共布尔onChildClick(ExpandableListView父视图,视图v,
int groupPosition、int childPosition、long id){
Log.e(“OnChildClickListener”,“OK”);
返回false;
}
});
}
public void setGroupData(){
添加(“技术”);
groupItem.add(“移动”);
集团项目。添加(“制造商”);
集团项目。添加(“额外项目”);
}
ArrayList groupItem=新的ArrayList();
ArrayList childItem=新的ArrayList();
public void setChildGroupData(){
/**
*为技术添加数据
*/
ArrayList子项=新的ArrayList();
添加(“Java”);
添加(“Drupal”);
添加(“.Net Framework”);
添加(“PHP”);
添加(子项);
/**
*为手机添加数据
*/
child=newarraylist();
添加(“安卓”);
添加(“移动窗口”);
添加(“iPHone”);
添加(“黑莓”);
添加(子项);
/**
*添加生产数据
*/
child=newarraylist();
儿童。添加(“HTC”);
添加(“苹果”);
添加(“三星”);
添加(“诺基亚”);
添加(子项);
/**
*添加额外的数据
*/
child=newarraylist();
添加(“联系我们”);
添加(“关于我们”);
添加(“位置”);
添加(“根本原因”);
添加(子项);
}
}
适配器:

@SuppressWarnings("unchecked")
public class NewAdapter extends BaseExpandableListAdapter {

    public ArrayList<String> groupItem, tempChild;
    public ArrayList<Object> Childtem = new ArrayList<Object>();
    public LayoutInflater minflater;
    public Activity activity;

    public NewAdapter(ArrayList<String> grList, ArrayList<Object> childItem) {
        groupItem = grList;
        this.Childtem = childItem;
    }

    public void setInflater(LayoutInflater mInflater, Activity act) {
        this.minflater = mInflater;
        activity = act;
    }

    @Override
    public Object getChild(int groupPosition, int childPosition) {
        return null;
    }

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

    @Override
    public View getChildView(int groupPosition, final int childPosition,
            boolean isLastChild, View convertView, ViewGroup parent) {
        tempChild = (ArrayList<String>) Childtem.get(groupPosition);
        TextView text = null;
        if (convertView == null) {
            convertView = minflater.inflate(R.layout.childrow, null);
        }
        text = (TextView) convertView.findViewById(R.id.textView1);
        text.setText(tempChild.get(childPosition));
        /*convertView.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(activity, tempChild.get(childPosition),
                        Toast.LENGTH_SHORT).show();
            }
        });*/
        return convertView;
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        return ((ArrayList<String>) Childtem.get(groupPosition)).size();
    }

    @Override
    public Object getGroup(int groupPosition) {
        return null;
    }

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

    @Override
    public void onGroupCollapsed(int groupPosition) {
        super.onGroupCollapsed(groupPosition);
    }

    @Override
    public void onGroupExpanded(int groupPosition) {
        super.onGroupExpanded(groupPosition);
    }

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

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded,
            View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = minflater.inflate(R.layout.grouprow, null);
        }
        ((CheckedTextView) convertView).setText(groupItem.get(groupPosition));
        //((CheckedTextView) convertView).setChecked(isExpanded);
        return convertView;
    }

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

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

}
@SuppressWarnings(“未选中”)
公共类NewAdapter扩展了BaseExpandableListAdapter{
公共ArrayList groupItem,tempChild;
public ArrayList childItem=new ArrayList();
公共布局更扁平,更扁平;
公共活动;
public NewAdapter(ArrayList grList,ArrayList childItem){
groupItem=grList;
this.Childtem=childItem;
}
公共空间设置充气机(LayoutInflater mInflater,活动法){
this.minflater=minflater;
活动=行动;
}
@凌驾
公共对象getChild(int-groupPosition,int-childPosition){
返回null;
}
@凌驾
公共长getChildId(int-groupPosition,int-childPosition){
返回0;
}
@凌驾
公共视图getChildView(int groupPosition,final int childPosition,
布尔值isLastChild、视图转换视图、视图组父级){
tempChild=(ArrayList)Childtem.get(groupPosition);
TextView text=null;
if(convertView==null){
convertView=minflater.inflate(R.layout.childrow,null);
}
text=(TextView)convertView.findViewById(R.id.textView1);
setText(tempChild.get(childPosition));
/*setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
Toast.makeText(活动,tempChild.get(childPosition),
吐司。长度(短)。show();
}
});*/
返回视图;
}
@凌驾
公共整数getChildrenCount(整数组位置){
return((ArrayList)Childtem.get(groupPosition)).size();
}
@凌驾
公共对象getGroup(int-groupPosition){
返回null;
}
@凌驾
public int getGroupCount(){
返回groupItem.size();
}
@凌驾
公共void-ongroupposition(int-groupPosition){
super.ongroupposition(groupPosition);
}
@凌驾
已扩展的公共组(int-groupPosition){
super.onGroupExpanded(groupPosition);
}
@凌驾
公共长getGroupId(int-groupPosition){
返回0;
}
@凌驾
公共视图getGroupView(int-groupPosition,布尔值isExpanded,
视图(视图、视图组父级){
if(convertView==null){
convertView=minflater.flate(R.layout.grouprow,null);
}
setText(groupItem.get(groupPosition));
//((CheckedTextView)convertView).setChecked(isExpanded);
返回视图;
}
@凌驾
公共布尔表ID(){
返回false;
}
@凌驾
公共布尔值isChildSelectable(int-groupPosition,int-childPosition){
返回false;
}
}

请在适配器中使用此方法返回true

@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
    return true;
}
如果您正在设置类似于onchildclicklistenbner的侦听器,那么使用
ExpandableListActivity
有什么意义