마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

다이얼로그 창을 띄우고 싶습니다()

0 추천
로그
 
 
public class MySubActivity extends Activity implements OnClickListener{
 
MainView mainView;
private WakeLock wl;
ProgressBar progress01;
Button btn01;
TextView tvi;
 
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.main);
        PowerManager pm = (PowerManager)this.getApplicationContext().getSystemService(Context.POWER_SERVICE);
        wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "gamelock");
        wl.acquire();
        int ScreenWidth = getWindowManager().getDefaultDisplay().getWidth();
        int ScreenHeight = getWindowManager().getDefaultDisplay().getHeight();
        mainView = (MainView)findViewById(R.id.main_view); 
        mainView.Init(ScreenWidth, ScreenHeight, MySubActivity.this);
        
        TextView tvi = (TextView)findViewById(R.id.textView1); //텍스트뷰 가져오는부분
        
        //게임시작 버튼 및 프로그래스바 부분
        progress01 = (ProgressBar)findViewById(R.id.progressBar01);
        btn01 = (Button)findViewById(R.id.button1);
        
        final Toast info = Toast.makeText(MySubActivity.this, "시작버튼을 눌러주세요", Toast.LENGTH_SHORT);
        info.show(); // 게임안내 토스트
                         
        tvi.setText("Score : "+MainView.score);
        btn01.setOnClickListener((android.view.View.OnClickListener) MySubActivity.this);
                 
    }
    public void onClick(View v){
    final Toast t = Toast.makeText(MySubActivity.this, "Time over", Toast.LENGTH_LONG);//토스트출력선언
   
    if (v == btn01){
    new Thread(new Runnable(){
    public void run(){
    mainView.movement = true; // 버튼 움직임 가능
    progress01.setProgress(0);
        progress01.setMax(100);
       
        for(int i = 0; i<= 100; ++i){
    progress01.setProgress(i);
    SystemClock.sleep(100);
        }        
        //startActivity(new Intent(MySubActivity.this, PopupActivity.class));        
        t.show();//게임오버 토스트 출력
        //request();
        mainView.movement = false; // 프로그래스바 활동 중지하면 버튼 움직임 불가
    }
    }).start();
    }
    }
    private void request(){
    String title = "테스트페이지";
    String message = "test";
   
    AlertDialog dialog = makeRequestDialog(title, message);
    dialog.show();
    }
    private AlertDialog makeRequestDialog(CharSequence title, CharSequence message){
    AlertDialog.Builder requestDialog = new AlertDialog.Builder(this);
    requestDialog.setTitle(title);
    requestDialog.setMessage(message);
    return requestDialog.show();
    }
}
 
액티비티 소스는 다음과 같습니다. 스레드(프로그래스바 진행)가 종료되면 다이얼로그를 띄우려고 하는데
어제 하루종일 해봐도 안되네요 ㅠ 오류는 로그와 같습니다.
핸들러를 사용해보려고해도 정확히 어디다가 박아놔야 하는지 몰라서 자리 바꿔가면서 추가해봐도 계속
안되네요 ㅠㅠ 
코딩잘하고싶다 (980 포인트) 님이 2013년 6월 29일 질문
코딩잘하고싶다님이 2013년 6월 29일 수정

1개의 답변

0 추천

http://stackoverflow.com/questions/12400620/how-to-show-alert-dialog-in-a-running-thread

You have to show your dialog on UI thread like below

runOnUiThread(new Runnable() {
                @Override
                public void run() {
                // Your dialog code.
                }
            });
aucd29 (218,390 포인트) 님이 2013년 7월 1일 답변
해결했습니다^^ ㅋ 정말 많이 배우네요 여기서 ㅠ 감사합니다
...