1

ProgressDialogユーザーがボタンをクリックしたときに表示する を作成しました。

ちなみに私の活動はTabgroup

これが私のコードです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();

インテントを使用するまで、すべてが正常に機能するようになりました。エラーが発生します

これが私のLogCatです:

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

なぜそのエラーが発生するのですか? 私に関する限り、私は親に電話します。助けてください??

4

2 に答える 2

1

parentsActivity.startChildActivity("MerchantActivity", edit);メイン UI スレッドでを実行してみてください。このようなもの:

runOnUiThread(new Runnable() {
    public void run() {
        parentsActivity.startChildActivity("MerchantActivity", edit);
    }
});

ところで、これについては宣言する必要がありTabGroupActivity parentsActivityます。Intent editfinal

于 2012-10-17T08:31:05.910 に答える
0

気にしないで、探していた答えを見つけました。追加するだけで魅力的に機能します

                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);
                              }
                            });
于 2012-10-17T08:31:33.477 に答える