2013-05-11 51 views
-3

在一個android應用程序中,我點擊一個按鈕一個標誌設置爲1,然後我檢查它是否設置爲1做某件事。但它不工作!Android如果條件

public class MainActivity extends Activity { 
    Button button1; 
    TextView text1; 
    int flag=0; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main);; 
     text1 =(TextView) findViewById(R.id.text1); 
     button1 = (Button) findViewById(R.id.button1); 
     button1.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       flag = 1; 
      } 
     }); 


    if(flag == 1){ 
     text1.setText("Manoj Kumar S"); 

    } 
} 

這個邏輯似乎不起作用!爲什麼?

+0

你可以把更多的代碼,看到如果buttonFlag是一個屬性,或者一個局部變量,當你做你的,如果條件...... – 2013-05-11 19:07:08

+2

如果你點擊你爲什麼要檢查它是否被點擊的按鈕?你有OnClickListener ..這是爲你做的工作..只需在onClick方法中編寫你想要做的代碼 – Elior 2013-05-11 19:09:53

+0

邏輯非常簡單。我有一個按鈕,我點擊我想int buttonFlag = 0,設置更改爲buttonFlag = 1(這改變了,我用烤麪包檢查過)。 現在我想檢查是否(buttonFlag == 1),我想在TextView上顯示一個文本。這沒有發生! – 2013-05-11 19:11:13

回答

0

也許你想是這樣的

public class MainActivity extends Activity { 
Button button1; 
TextView text1; 
int flag=0; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main);; 
    text1 =(TextView) findViewById(R.id.text1); 
    button1 = (Button) findViewById(R.id.button1); 
    button1.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      flag = 1; 
      updateTextView(); 
     } 
    }); 
} 

private void updateTextView() { 
    if(flag == 1){ 
    text1.setText("Manoj Kumar S"); 
    } 

} 

} 
0

只是招行內部的onClick

public class MainActivity extends Activity { 
Button button1; 
TextView text1; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main);; 
    text1 =(TextView) findViewById(R.id.text1); 
    button1 = (Button) findViewById(R.id.button1); 
    button1.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      text1.setText("Manoj Kumar S"); 
     } 
    }); 

}

0

在Java中,所有的可執行代碼必須在方法。

if(flag == 1){ 

    text1.setText("Manoj Kumar S"); 

} 

此代碼不在方法中,也不會運行。把它變成一種方法,或許就像Blackbelt所表明的那樣。

0

我也認爲邏輯是不對的,因爲有按鈕的事件驅動,由A表示 - C.Try一些不同的東西..

int flag=0; 
button1.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) 
    { 
       flag=1; 
       test(); 
    } 
}); 
private void test() 
{ 
    if(flag==1) 
     text1.setText("Do your stuff.."); 
} 
+0

這完美的作品..謝謝你@ridoy – 2013-05-12 08:59:21

+0

謝謝,如果你認爲它解決您的問題,然後將其標記爲答案,這樣它可以幫助那些誰將會面臨同樣的問題,像你這樣的人.. :) – ridoy 2013-05-12 10:30:54

+0

可能性不大得到一個單一的投票呢! – ridoy 2013-05-30 19:02:33