android.content.res.Resources$NotFoundException: String resource ID #0x1
at android.widget.Toast.makeText(Toast.java:268)
at com.example.baby.widget.AutoScrollViewPager.dispatchTouchEvent(...)
Toast.makeText(Context, int, int) 的第二個參數被標註為 @StringRes int resId,意圖是傳入字串資源 ID(如 R.string.xxx),而非任意整數。
代碼中:getCurrentItem() 回傳 int(頁面索引 0, 1, 2...),編譯器匹配到此重載,以為你傳的是資源 ID。運行時系統嘗試根據此 ID 查找字串資源,找不到(如 0x1 對應無資源),拋出 Resources$NotFoundException。
將整數轉為字串,讓編譯器選擇 makeText(Context, CharSequence, int):
// 錯誤
Toast.makeText(context, getCurrentItem(), 0).show();
// 正確:任選其一
Toast.makeText(context, getCurrentItem() + "", 0).show(); // 拼接空串
Toast.makeText(context, String.valueOf(getCurrentItem()), 0).show(); // 明確轉換
Toast.makeText(context, Integer.toString(getCurrentItem()), 0).show(); // 標準轉換
Log.d("TAG", "item=" + getCurrentItem()) 輸出到 Logcat,不阻塞主執行緒,資訊完整可過濾。int 被誤判為 @StringRes 資源 ID。getCurrentItem() + "" 轉為字串。