2014-03-31 103 views
0

我在我的應用程序的一個java文件中有此代碼。Android佈局未能打開

public class Board_Play1 extends Activity { 

int d,a=0,b=0,turn=2; 
Random random = new Random(); 
@Override 
protected void onCreate(final Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.board_play1); 
    while(a!=100 && b!=100) 
    { 
     if(turn%2==0) 
     { 
      Button button = (Button) findViewById(R.id.button1); 
      button.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View view) { 
        // TODO Auto-generated method stub 
        d=random.nextInt(6)+1; 
        EditText diceno = (EditText) findViewById(R.id.editText1); 
        diceno.setText(String.valueOf(d)); 

       } 
      }); 
     }turn++; 
    } 

} 


} 

我來自另一個java文件的這個java文件。所有我得到的問題是,當這個文件沒有任何while循環,因爲它在代碼中運行良好。但是,在導航到此佈局時包含while循環會使屏幕變黑,並且無法執行進一步的處理。如果我們按回按鈕,我們會彈出消息Your application isn't respondingDo You want to close?Yes No

爲什麼會發生這種情況。我在while循環中包含的所有內容都是完美的。這是什麼原因造成的?

+0

它是無限循環,凍結你的應用程序死亡。 –

+0

是不是讓應用程序運行直到用戶關閉它? – nomorequestions

+0

@vinaykumar你是什麼意思? – s4m0k

回答

0

我認爲你有一個無限循環。 while循環中的條件始終爲真,因爲a和b值永遠不會增加。

而你看到黑屏的原因是這個無限循環阻塞了主UI線程。

0

似乎這對我來說是一個無限循環。

int a=0, b=0; 

這些值在您的代碼中永遠不會改變,並且您在while循環的條件中使用它們。

嘗試類似:

while(a!=100 && b!=100) 
{ 
    if(turn%2==0) 
    { 
     Button button = (Button) findViewById(R.id.button1); 
     button.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       d=random.nextInt(6)+1; 
       EditText diceno = (EditText) findViewById(R.id.editText1); 
       diceno.setText(String.valueOf(d)); 
      } 
     }); 
    } 

    turn++; 

    // a = somevalue based on what you're trying to do. 
    // b = somevalue based on what you're trying to do. 
}