在对话框显示

时间:2016-07-19 09:49:20

标签: android

这是我的问题,请参阅以下代码

PlayListNameDialog newPlaylistDialog=new PlayListNameDialog();
newPlaylistDialog.show(getFragmentManager(),"new playlist");
ArrayList<String> tempAdd=new ArrayList();
tempAdd.add(currentSong);
QueryMusic.playlistCollection.put(QueryMusic.playlistNameList.get(0),tempAdd);
SimpleMusicMainActivity.fragmentPagerAdapter.notifyDataSetChanged();
Toast.makeText(getContext(), "Added successfully", Toast.LENGTH_SHORT).show();
按下确定按钮时,

和对话框中的代码

okButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            plName=playListName.getText().toString();
            if (!QueryMusic.playlistNameList.contains(plName))
                QueryMusic.playlistNameList.add(plName);
            if (!plName.isEmpty()&&plName.trim().length()>0)
                PlayListNameDialog.this.dismiss();
            else
                Snackbar.make(okButton,"Please input again",Snackbar.LENGTH_SHORT).show();
        }
    });

我的想法是在对话框显示之后,将用户输入的播放列表名称放入QueryMusic.playlistNameList。

但每次下面的代码都会在对话框显示之前执行。所以总是得到playlistCollection.put null异常错误。

QueryMusic.playlistCollection.put(QueryMusic.playlistNameList.get(0),tempAdd);

任何人都可以帮我一个忙,告诉我为什么以及如何解决?

提前致谢。

这是logcat

java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
                                                                        at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
                                                                        at java.util.ArrayList.get(ArrayList.java:308)
                                                                        at com.flover.simplemusic.AddToExistedPlaylist$1.onItemClick(AddToExistedPlaylist.java:59)
                                                                        at android.widget.AdapterView.performItemClick(AdapterView.java:310)
                                                                        at android.widget.AbsListView.performItemClick(AbsListView.java:1188)
                                                                        at android.widget.AbsListView$PerformClick.run(AbsListView.java:3105)
                                                                        at android.widget.AbsListView$3.run(AbsListView.java:4096)
                                                                        at android.os.Handler.handleCallback(Handler.java:739)
                                                                        at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                        at android.os.Looper.loop(Looper.java:148)
                                                                        at android.app.ActivityThread.main(ActivityThread.java:5527)
                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
                                                                        at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:117)

0 个答案:

没有答案