【问题标题】:Error SeekBar Android错误 SeekBar Android
【发布时间】:2013-06-14 22:24:27
【问题描述】:

我的程序有问题...我想做一个简单的搜索栏,在更改 toast 时显示它的值。

这是我的代码:

SeekBar seek = (SeekBar) findViewById(R.id.seekBar1);

seek.setOnSeekBarChangeListener( new OnSeekBarChangeListener() {

 public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
      Toast.makeText(getApplicationContext(), progress, Toast.LENGTH_SHORT).show();
 }

  public void onStartTrackingTouch(SeekBar arg0) {

  }

  public void onStopTrackingTouch(SeekBar arg0) {

  }
  });

这是我的错误(日志):

 06-14 22:18:16.330: E/AndroidRuntime(991): FATAL EXCEPTION: main
06-14 22:18:16.330: E/AndroidRuntime(991): android.content.res.Resources$NotFoundException: String resource ID #0x1
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.content.res.Resources.getText(Resources.java:229)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.widget.Toast.makeText(Toast.java:265)
06-14 22:18:16.330: E/AndroidRuntime(991):  at com.neneinc.shakemute.MainActivity$2.onProgressChanged(MainActivity.java:48)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.widget.SeekBar.onProgressRefresh(SeekBar.java:91)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:660)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.widget.ProgressBar.refreshProgress(ProgressBar.java:672)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.widget.ProgressBar.setProgress(ProgressBar.java:719)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.widget.AbsSeekBar.trackTouchEvent(AbsSeekBar.java:424)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.widget.AbsSeekBar.onTouchEvent(AbsSeekBar.java:362)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.View.dispatchTouchEvent(View.java:7127)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
06-14 22:18:16.330: E/AndroidRuntime(991):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1925)
06-14 22:18:16.330: E/AndroidRuntime(991):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1379)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.app.Activity.dispatchTouchEvent(Activity.java:2396)
06-14 22:18:16.330: E/AndroidRuntime(991):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1873)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.View.dispatchPointerEvent(View.java:7307)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3174)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3119)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4155)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4134)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4226)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:163)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:4205)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:4245)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.Choreographer.doCallbacks(Choreographer.java:555)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.Choreographer.doFrame(Choreographer.java:523)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.os.Handler.handleCallback(Handler.java:615)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.os.Handler.dispatchMessage(Handler.java:92)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.os.Looper.loop(Looper.java:137)
06-14 22:18:16.330: E/AndroidRuntime(991):  at android.app.ActivityThread.main(ActivityThread.java:4745)
06-14 22:18:16.330: E/AndroidRuntime(991):  at java.lang.reflect.Method.invokeNative(Native Method)
06-14 22:18:16.330: E/AndroidRuntime(991):  at java.lang.reflect.Method.invoke(Method.java:511)
06-14 22:18:16.330: E/AndroidRuntime(991):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
06-14 22:18:16.330: E/AndroidRuntime(991):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
06-14 22:18:16.330: E/AndroidRuntime(991):  at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 只是Toast 无法打印int progress,您必须将progress 转换为字符串。例如。 String.valueOf(progress)

标签: android onchange seekbar


【解决方案1】:

不要将progress 变量直接传递给makeText(Context, int, int),因为该版本的方法需要一个资源ID(一个对应于R 自动生成文件中的条目的int 值)。改为传递String.valueOf(progress),将其转换为String 并调用makeText(Context, String, int)。换句话说,替换这个:

Toast.makeText(getApplicationContext(), progress, Toast.LENGTH_SHORT).show();

用这个:

 Toast.makeText(getApplicationContext(), String.valueOf(progress), Toast.LENGTH_SHORT).show();

【讨论】:

  • @user2487729: 好 :) 如果您对答案感到满意,请不要忘记单击答案左侧的勾号(“1”下方)接受它。谢谢!
猜你喜欢
  • 1970-01-01
  • 2021-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多