Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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?_Android_Imageview_Expandablelistview - Fatal编程技术网

Android 如何对不同的图像使用可扩展的listview?

Android 如何对不同的图像使用可扩展的listview?,android,imageview,expandablelistview,Android,Imageview,Expandablelistview,我想使用不同的图像代替文本字符串作为可扩展列表视图的子级。在这些图像的点击事件中,不同的子布局应该打开。谁能告诉我怎样才能做到这一点?我已经阅读了很多代码,但找不到正确的答案。我不知道如何从绘图文件夹中获取可展开列表视图上的图像。我知道如何从字符串中获取文本,但我使用了图像数组,不知道如何添加这些字符串。我是android新手,所以不知道正确的代码格式。我正在尝试这段代码,但它给出了logcat中显示的错误 MainActivity.java public class M

我想使用不同的图像代替文本字符串作为可扩展列表视图的子级。在这些图像的点击事件中,不同的子布局应该打开。谁能告诉我怎样才能做到这一点?我已经阅读了很多代码,但找不到正确的答案。我不知道如何从绘图文件夹中获取可展开列表视图上的图像。我知道如何从字符串中获取文本,但我使用了图像数组,不知道如何添加这些字符串。我是android新手,所以不知道正确的代码格式。我正在尝试这段代码,但它给出了logcat中显示的错误

MainActivity.java

            public class MainActivity extends Activity {
            protected static final String TAG = null;
            ExpandableListView expListView;

            @Override
            protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

                ExpandableListAdapter adapter=new ExpandableListAdapter(this);
              expListView = (ExpandableListView) findViewById(R.id.lvExp);
            expListView.setAdapter(adapter);

            expListView.setOnGroupExpandListener(new OnGroupExpandListener() {
                @Override
                public void onGroupExpand(int groupPosition) {
                    Log.i(TAG, "Group " + groupPosition + " expanded.");
                }
            });
            expListView.setOnGroupCollapseListener(new OnGroupCollapseListener() {
                @Override
                public void onGroupCollapse(int groupPosition) {
                    Log.i(TAG, "Group " + groupPosition + " collapsed.");
                }
            });
            expListView.setOnChildClickListener(new OnChildClickListener() {
                @Override
                public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
                    Log.i(TAG, "item " + childPosition + " of group " + groupPosition + " clicked.");
                    return false;
                }                       
        });
            int count = adapter.getGroupCount();
            for (int position = 1; position <= count; position++)
                expListView.expandGroup(position - 1);
        }
        }
logCat错误:

  09-18 11:27:23.465: E/AndroidRuntime(1688): FATAL EXCEPTION: main
09-18 11:27:23.465: E/AndroidRuntime(1688): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.settingsui/com.example.settingsui.MainActivity}: java.lang.ArrayIndexOutOfBoundsException: length=4; index=4
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.os.Looper.loop(Looper.java:137)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.app.ActivityThread.main(ActivityThread.java:5103)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at java.lang.reflect.Method.invokeNative(Native Method)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at java.lang.reflect.Method.invoke(Method.java:525)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at dalvik.system.NativeStart.main(Native Method)
09-18 11:27:23.465: E/AndroidRuntime(1688): Caused by: java.lang.ArrayIndexOutOfBoundsException: length=4; index=4
09-18 11:27:23.465: E/AndroidRuntime(1688):     at com.example.settingsui.ExpandableListAdapter.getChildrenCount(ExpandableListAdapter.java:58)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.widget.ExpandableListConnector.refreshExpGroupMetadataList(ExpandableListConnector.java:563)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.widget.ExpandableListConnector.expandGroup(ExpandableListConnector.java:688)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.widget.ExpandableListView.expandGroup(ExpandableListView.java:748)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.widget.ExpandableListView.expandGroup(ExpandableListView.java:732)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at com.example.settingsui.MainActivity.onCreate(MainActivity.java:49)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.app.Activity.performCreate(Activity.java:5133)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
09-18 11:27:23.465: E/AndroidRuntime(1688):     ... 11 more
09-18 11:32:23.823: I/Process(1688): Sending signal. PID: 1688 SIG: 9
试试这个示例代码

我想是的,可能您需要更改listview的行布局

  09-18 11:27:23.465: E/AndroidRuntime(1688): FATAL EXCEPTION: main
09-18 11:27:23.465: E/AndroidRuntime(1688): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.settingsui/com.example.settingsui.MainActivity}: java.lang.ArrayIndexOutOfBoundsException: length=4; index=4
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.os.Looper.loop(Looper.java:137)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.app.ActivityThread.main(ActivityThread.java:5103)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at java.lang.reflect.Method.invokeNative(Native Method)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at java.lang.reflect.Method.invoke(Method.java:525)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at dalvik.system.NativeStart.main(Native Method)
09-18 11:27:23.465: E/AndroidRuntime(1688): Caused by: java.lang.ArrayIndexOutOfBoundsException: length=4; index=4
09-18 11:27:23.465: E/AndroidRuntime(1688):     at com.example.settingsui.ExpandableListAdapter.getChildrenCount(ExpandableListAdapter.java:58)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.widget.ExpandableListConnector.refreshExpGroupMetadataList(ExpandableListConnector.java:563)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.widget.ExpandableListConnector.expandGroup(ExpandableListConnector.java:688)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.widget.ExpandableListView.expandGroup(ExpandableListView.java:748)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.widget.ExpandableListView.expandGroup(ExpandableListView.java:732)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at com.example.settingsui.MainActivity.onCreate(MainActivity.java:49)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.app.Activity.performCreate(Activity.java:5133)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
09-18 11:27:23.465: E/AndroidRuntime(1688):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
09-18 11:27:23.465: E/AndroidRuntime(1688):     ... 11 more
09-18 11:32:23.823: I/Process(1688): Sending signal. PID: 1688 SIG: 9