Open ryotayama opened 1 month ago
PlayListFragment.javaの該当部分 arSongs.getで渡している引数が-1になってるとなると、showSongMenuの引数nItemが-1になってることになる。
void showSongMenu(final int nItem) {
if (sActivity == null) return;
sSelectedItem = nItem;
ArrayList<SongItem> arSongs = sPlaylists.get(sSelectedPlaylist);
final SongItem songItem = arSongs.get(nItem);
showSongMenuの呼び出し元(SongsAdapter.java) holder.getAdapterPosition()の戻り値が-1?
holder.getImgSongMenu().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mActivity.playlistFragment.showSongMenu(holder.getAdapterPosition());
}
});
getAdapterPositionはそのviewholderのitemが存在しないときに-1 (NO_POSITION)を返すらしい。 状態のクロスケース?
AQUOS sense4 lite かなり性能の低い端末っぽいので遅い端末でやったら再現するかも。
手元で再現手順確立できていないので未確認タグ貼ります。
問合せ597
Exception java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 12 at jdk.internal.util.Preconditions.outOfBounds (Preconditions.java:64) at jdk.internal.util.Preconditions.outOfBoundsCheckIndex (Preconditions.java:70) at jdk.internal.util.Preconditions.checkIndex (Preconditions.java:266) at java.util.Objects.checkIndex (Objects.java:359) at java.util.ArrayList.get (ArrayList.java:434) at com.edolfzoku.hayaemon2.PlaylistFragment.showSongMenu (PlaylistFragment.java:1897) at com.edolfzoku.hayaemon2.SongsAdapter$7.onClick (SongsAdapter.java:213) at android.view.View.performClick (View.java:7450) at android.view.View.performClickInternal (View.java:7427) at android.view.View.access$3700 (View.java:844) at android.view.View$PerformClick.run (View.java:28707) at android.os.Handler.handleCallback (Handler.java:938) at android.os.Handler.dispatchMessage (Handler.java:99) at android.os.Looper.loopOnce (Looper.java:201) at android.os.Looper.loop (Looper.java:288) at android.app.ActivityThread.main (ActivityThread.java:7980) at java.lang.reflect.Method.invoke at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1009)