-3

在一个 android 应用程序中,我单击一个按钮,一个标志设置为 1,然后我检查它是否设置为 1 来做某事。但它不工作!

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");

    }
}

这个逻辑好像不行!为什么?

4

4 回答 4

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");
        }
    });

}

于 2013-05-11T19:44:39.123 回答
0

在 Java 中,所有可执行代码都必须在方法中。

if(flag == 1 ){

    text1.setText("Manoj Kumar S");

}

此代码不在方法中,永远不会运行。将其移入方法中,也许正如 Blackbelt 所展示的那样。

于 2013-05-11T19:46:24.090 回答
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");
   }

 }

}
于 2013-05-11T19:39:26.157 回答
0

我也认为逻辑不正确,因为按钮是事件驱动的,如 A--C 所述。尝试一些不同的东西..

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..");
}
于 2013-05-11T19:59:46.947 回答