2011-11-19 9 views
3

このゲームは作成しようとしていますので、レッスンのアクティビティには素晴らしい景色があります。チュートリアルポップアップxmlが膨らむ前に、プレーヤーに1秒または2秒間これを見せてもらいたい。透明なポップアップxmlと背景xmlの両方が、アクティビティが開始されるとすぐに表示されます。私はこれで新しいとアンドントの開発者のホームページの説明を理解することはできません。どんな助けでも大歓迎です。インフレータブルレイアウトのために時間遅れを配備する

package com.jibushi; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class LessonsShell extends Activity { 

    private View view; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.lessons); 

     final ViewGroup parent = (ViewGroup) findViewById(R.id.lessons_bg); 

     Thread splashTread = new Thread() { 
      @Override 
      public void run() { 
       try { 
        wait(1000); 
       } catch (InterruptedException e) { 

       } finally { 
        view(); 
       } 
      } 

      private void view() { 
       // TODO Auto-generated method stub 
       view = LayoutInflater.from(getBaseContext()).inflate(
         R.layout.lessons_dialog, null); 
       parent.addView(view); 
      } 
     }; 
     splashTread.start(); 
    } 
} 

答えて

2

はこれを試してみてください。

public class LessonsShell extends Activity{ 
private static final int MESSAGE_SHOW_POPUP=7; 
private static final long TIME_DELAY=3000;//3 seconds 
private View view; 
private Handler handler=new Handler(){ 
    handleMessage(Message msg){ 
     switch(msg.what){ 
     case MESSAGE_SHOW_POPUP: 
      view(); 
      break; 
     } 
    }; 
}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 

setContentView(R.layout.lessons); 
//this will send a message to the handler to display the popup after 3 seconds. 
handler.sendEmptyMessageDelayed(MESSAGE_SHOW_POPUP,TIME_DELAY); 

} 

private void view() { 
// TODO Auto-generated method stub 
ViewGroup parent = (ViewGroup) findViewById(R.id.lessons_bg); 
view = LayoutInflater.from(getBaseContext()).inflate(R.layout.lessons_dialog, null); 
parent.addView(view); 
} 

}

ハンドラは、Androidでのタイマーのための素晴らしい代替品です。

以前に行っていたことは、そこからUIスレッドにアクセスしようとして、onCreateにバックグラウンドスレッドを作成することでした。私の経験から、あなたはバックグラウンドスレッドからUIスレッドにアクセスすることができないので、クラッシュするはずです。

+0

恐ろしい!ヒープありがとう! – kishfoo

+0

喜んで:) – rDroid

0

あなたはUIエレメントと非UIスレッドを変更できないため、このコードは機能しません。

1)空白の背景を示します。

2)

DoinBackground() 
{ 
wait 
} 
onPostExecute() 
{ 
addView 
} 

非同期タスクを(任意の用語が不明の場合は、Googleを参照)を実行します。

関連する問題