0

我一直在尝试编写这个程序,我想我几乎拥有它,但是我错误地想出了我的部分代码被跳过了,为什么?当我去运行我的程序并点击行按钮时,文本显示显示输入 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);
                }
            });
        }
    }): 
}
4

1 回答 1

1

它没有跳过任何东西 - 它正在做它应该做的事情......看起来你不明白听众是如何工作的:

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

Line button 甚至没有 on click listener 设置,所以它什么也不做。

于 2013-06-06T07:43:03.333 回答