我的一些代码被跳过了为什么?

ubby3x7f  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(310)

我一直在试图写这个程序,我想我几乎有它,但我想出了一个错误,我的部分代码被跳过为什么?当我去运行我的程序,并点击行按钮的文本显示说输入y而不是x,所以我知道在注解掉行之间的代码没有运行,或者是和不是正常工作。所以我的问题是为什么这部分代码被跳过而没有运行?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.cad);
    ourSurface = new GLSurfaceView(this);
    FrameLayout v = (FrameLayout) findViewById(R.id.display);
    v.addView(ourSurface);
    ourSurface.setRenderer(new GLRenderer());

    final TextView info = (TextView)findViewById(R.id.info);
    Button line = (Button) findViewById(R.id.line);
    final Button enter = (Button)findViewById(R.id.enter);
    EditText cl = (EditText)findViewById(R.id.cl);
    final String value = cl.getText().toString();

    line.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                coords = Float.parseFloat(value);
            } catch (NumberFormatException e){};

//------------------------------------------------

            info.setText("Input x");
            enter.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    linep.add((float)coords);                   
                }
            });             
//-----------------------------------------         
            info.setText("Input y");
            enter.setOnClickListener(new View.OnClickListener() {               
                @Override
                public void onClick(View v) {
                    linep.add((float)coords);
                    indexP.add((short)p);
                }
            });
        }
    }): 
}
axkjgtzd

axkjgtzd1#

它没有跳过任何东西-它在做它应该做的事情。。。似乎你不明白听众是如何工作的:

you set text of info to "input x" 
then you set the on click listener of enter
then you set text of info to "input y"
then you set the on click listener of enter again

所以最后两条第一行被第二行重置。。。就像这样

infotext = "input x"
enterclick = some code
infotext = "input y"
enderclick = some other code

行buton甚至没有单击侦听器集,所以它什么也不做。

相关问题