Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.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
Java 单击可展开的Listview图像更改?_Java_Android - Fatal编程技术网

Java 单击可展开的Listview图像更改?

Java 单击可展开的Listview图像更改?,java,android,Java,Android,我有下面的代码运行完美。当用户单击某个组时,该组会展开由于状态更改而导致的图像更改。xml文件也在下面。我遇到的问题是,当我单击一个子元素时,它会启动一个新的活动,但就在您可以看到图像的状态更改为“组已关闭”之前。使用“后退”箭头时,即使组仍处于展开状态,图像也确实返回到关闭状态。有人能解释一下吗 private static final int[] EMPTY_STATE_SET = {}; private static final int[] GROUP_EXPANDED_STATE_SET

我有下面的代码运行完美。当用户单击某个组时,该组会展开由于状态更改而导致的图像更改。xml文件也在下面。我遇到的问题是,当我单击一个子元素时,它会启动一个新的活动,但就在您可以看到图像的状态更改为“组已关闭”之前。使用“后退”箭头时,即使组仍处于展开状态,图像也确实返回到关闭状态。有人能解释一下吗

private static final int[] EMPTY_STATE_SET = {};
private static final int[] GROUP_EXPANDED_STATE_SET = {android.R.attr.state_expanded};
private static final int [] [] GROUP_STATE_SETS = {
    EMPTY_STATE_SET, //0
    GROUP_EXPANDED_STATE_SET //1
};

           Cursor groupCursor = checkDB.rawQuery("SELECT * FROM TABLE", null);
            mscta = new MySimpleCursorTreeAdapter(
                                                    this,
                                                    groupCursor,
                                                    R.layout.listGroup,
                                                    new String[] {"group"},
                                                    new int[] {R.id.group},
                                                    R.layout.listChildren,
                                                    new String[] {"child"},
                                                    new int[] {R.id.Child}) {
                @Override
                public View getGroupView (int groupPosition,
                        boolean isExpanded,
                        View convertView,
                        ViewGroup parent) {

                        View v = super.getGroupView( groupPosition, isExpanded, convertView, parent);
                        View ind = v.findViewById(R.id.explist_indicator);
                        if(ind != null){
                            ImageView indicator = (ImageView) ind;
                            indicator.setVisibility( View.VISIBLE );
                            int stateSetIndex = ( isExpanded ? 1:0);
                            Drawable drawable = indicator.getDrawable();
                            drawable.setState(GROUP_STATE_SETS[stateSetIndex]);
                        }
                        return v;
                    }
            };
XML explist_indicator.XML

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_expanded="true"
        android:drawable="@drawable/minus" />
    <item
        android:drawable="@drawable/plus" />
</selector>

您可以通过调用onRestart()来更新listview,当u再次进入活动时将调用它,因此您可以更新列表视图,但您会发现groupview已关闭