我尝试在我的应用程序中实现 ProgressBar,当我单击播放声音的 Button 时它会显示。
我已完成编码,但出现运行时异常并且应用程序未启动。 在这里我发布我的代码以供引用。
holder.imgPlaybtn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
ProgressDialog progressDialog;
OnClickListener myContext = this;
progressDialog = new ProgressDialog((Context) myContext);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setMessage("...");
progressDialog.setCancelable(false);
}
});
Logcat 输出是:
12-02 12:19:58.268: ERROR/AndroidRuntime(392): java.lang.ClassCastException: com.android.soundmachine.Switch2DataList$SoundMacHineAdapter$2
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at com.android.soundmachine.Switch2DataList$SoundMacHineAdapter$2.onClick(Switch2DataList.java:1645)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at android.view.View.performClick(View.java:2364)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at android.view.View.onTouchEvent(View.java:4179)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at android.view.View.dispatchTouchEvent(View.java:3709)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at android.os.Handler.dispatchMessage(Handler.java:99)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at android.os.Looper.loop(Looper.java:123)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at android.app.ActivityThread.main(ActivityThread.java:4363)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at java.lang.reflect.Method.invokeNative(Native Method)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at java.lang.reflect.Method.invoke(Method.java:521)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12-02 12:19:58.268: ERROR/AndroidRuntime(392): at dalvik.system.NativeStart.main(Native Method)
12-02 12:19:58.287: INFO/Process(52): Sending signal. PID: 392 SIG: 3
12-02 12:19:58.287: INFO/dalvikvm(392): threadid=7: reacting to signal 3
12-02 12:19:58.287: ERROR/dalvikvm(392): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
12-02 12:20:05.098: DEBUG/dalvikvm(99): GC freed 2375 objects / 139384 bytes in 81ms
12-02 12:20:10.077: DEBUG/dalvikvm(212): GC freed 43 objects / 2096 bytes in 58ms
任何人都可以帮助我吗?
谢谢, 大卫,
最佳答案
progressDialog = new ProgressDialog((上下文) myContext); 这是错误的,你可以用它代替:
progressDialog = new ProgressDialog(v.getContext());
还有,你忘了调用show()
方法来显示进度条对话框,在最后写下一行:
progressDialog.show();
关于android - android 中的进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4332413/