Java ProgressDialog和TabGroup
我已经创建了一个Java ProgressDialog和TabGroup,java,android,progressdialog,Java,Android,Progressdialog,我已经创建了一个ProgressDialog来显示用户何时单击按钮 顺便说一下,我的活动在选项卡组中 这是我在ProgressDialog final ProgressDialog myPd_ring=ProgressDialog.show(MainActivity.this, "Please wait", "Loading please wait..", true); myPd_ring.setCancelable(false); new Thread(new
ProgressDialog
来显示用户何时单击按钮
顺便说一下,我的活动在选项卡组中
这是我在ProgressDialog
final ProgressDialog myPd_ring=ProgressDialog.show(MainActivity.this, "Please wait", "Loading please wait..", true);
myPd_ring.setCancelable(false);
new Thread(new Runnable() {
public void run() {
// TODO Auto-generated method stub
try
{
//Some data binding here....
}catch(Exception e){
}
myPd_ring.dismiss();
Intent edit = new Intent(getDialogContext(), MerchantActivity.class);
TabGroupActivity parentsActivity = (TabGroupActivity)getParent();
parentsActivity.startChildActivity("MerchantActivity", edit);
}
}).start();
现在一切正常,直到我使用意图。我犯了一个错误
这是我的日志:
10-17 16:35:21.429: E/AndroidRuntime(11604): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobileoptima.perxclub/com.mobileoptima.perxclub.MerchantActivity}: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
10-17 16:35:21.429: E/AndroidRuntime(11604): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573)
10-17 16:35:21.429: E/AndroidRuntime(11604): at android.app.ActivityThread.startActivityNow(ActivityThread.java:1491)
10-17 16:35:21.429: E/AndroidRuntime(11604): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
10-17 16:35:21.429: E/AndroidRuntime(11604): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
10-17 16:35:21.429: E/AndroidRuntime(11604): at com.mobileoptima.perxclub.TabGroupActivity.startChildActivity(TabGroupActivity.java:55)
10-17 16:35:21.429: E/AndroidRuntime(11604): at com.mobileoptima.perxclub.CardsActivity$2.run(CardsActivity.java:318)
10-17 16:35:21.429: E/AndroidRuntime(11604): at java.lang.Thread.run(Thread.java:1019)
10-17 16:35:21.429: E/AndroidRuntime(11604): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
10-17 16:35:21.429: E/AndroidRuntime(11604): at android.os.Handler.<init>(Handler.java:121)
10-17 16:35:21.429: E/AndroidRuntime(11604): at android.app.Activity.<init>(Activity.java:680)
10-17 16:35:21.429: E/AndroidRuntime(11604): at com.mobileoptima.perxclub.MerchantActivity.<init>(MerchantActivity.java:63)
10-17 16:35:21.429: E/AndroidRuntime(11604): at java.lang.Class.newInstanceImpl(Native Method)
10-17 16:35:21.429: E/AndroidRuntime(11604): at java.lang.Class.newInstance(Class.java:1409)
10-17 16:35:21.429: E/AndroidRuntime(11604): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
10-17 16:35:21.429: E/AndroidRuntime(11604): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1565)
10-17 16:35:21.429: E/AndroidRuntime(11604):
... 6 more
10-17 16:35:21.429:E/AndroidRuntime(11604):java.lang.RuntimeException:无法实例化活动组件信息{com.mobileoptima.perxclub/com.mobileoptima.perxclub.MerchantActivity}:java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序
10-17 16:35:21.429:E/AndroidRuntime(11604):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573)
10-17 16:35:21.429:E/AndroidRuntime(11604):在android.app.ActivityThread.startActivityNow(ActivityThread.java:1491)
10-17 16:35:21.429:E/AndroidRuntime(11604):在android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
10-17 16:35:21.429:E/AndroidRuntime(11604):在android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
10-17 16:35:21.429:E/AndroidRuntime(11604):在com.mobileoptima.perxclub.TabGroupActivity.startChildActivity(TabGroupActivity.java:55)
10-17 16:35:21.429:E/AndroidRuntime(11604):在com.mobileoptima.perxclub.CardsActivity$2.run(CardsActivity.java:318)
10-17 16:35:21.429:E/AndroidRuntime(11604):在java.lang.Thread.run(Thread.java:1019)处
10-17 16:35:21.429:E/AndroidRuntime(11604):原因:java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序
10-17 16:35:21.429:E/AndroidRuntime(11604):在android.os.Handler.(Handler.java:121)
10-17 16:35:21.429:E/AndroidRuntime(11604):在android.app.Activity.(Activity.java:680)
10-17 16:35:21.429:E/AndroidRuntime(11604):位于com.mobileoptima.perxclub.MerchantActivity.(MerchantActivity.java:63)
10-17 16:35:21.429:E/AndroidRuntime(11604):位于java.lang.Class.newInstanceImpl(本机方法)
10-17 16:35:21.429:E/AndroidRuntime(11604):位于java.lang.Class.newInstance(Class.java:1409)
10-17 16:35:21.429:E/AndroidRuntime(11604):在android.app.Instrumentation.newActivity(Instrumentation.java:1021)上
10-17 16:35:21.429:E/AndroidRuntime(11604):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1565)
10-17 16:35:21.429:E/AndroidRuntime(11604):
... 还有6个
为什么我会犯这样的错误?就我而言,我打电话给家长。请帮助???尝试运行parentsActivity.startChildActivity(“商品性”,编辑)主UI线程上的代码>。大概是这样的:
runOnUiThread(new Runnable() {
public void run() {
parentsActivity.startChildActivity("MerchantActivity", edit);
}
});
顺便说一句,您必须将TabGroupActivity parentsActivity
和Intent edit
声明为final
。尝试运行parentsActivity.startChildActivity(“商品性”,编辑)主UI线程上的代码>。大概是这样的:
runOnUiThread(new Runnable() {
public void run() {
parentsActivity.startChildActivity("MerchantActivity", edit);
}
});
顺便说一句,您必须将TabGroupActivity parentsActivity
和Intent edit
声明为final
。无论如何,我找到了我想要的答案。
我只是加了一句,效果很好
runOnUiThread(new Runnable() {
public void run() {
// Toast.makeText(activity, "Hello", Toast.LENGTH_SHORT).show();
Intent edit = new Intent(getParent(), MerchantActivity.class);
TabGroupActivity parentsActivity = (TabGroupActivity)getParent();
parentsActivity.startChildActivity("MerchantActivity", edit);
}
});
没关系,我找到了我想要的答案。
我只是加了一句,效果很好
runOnUiThread(new Runnable() {
public void run() {
// Toast.makeText(activity, "Hello", Toast.LENGTH_SHORT).show();
Intent edit = new Intent(getParent(), MerchantActivity.class);
TabGroupActivity parentsActivity = (TabGroupActivity)getParent();
parentsActivity.startChildActivity("MerchantActivity", edit);
}
});