Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何添加等待功能直到按下按钮?_Java_Android_Button_Onclicklistener - Fatal编程技术网

Java 如何添加等待功能直到按下按钮?

Java 如何添加等待功能直到按下按钮?,java,android,button,onclicklistener,Java,Android,Button,Onclicklistener,我想在我的代码中添加一个等待,直到按下按钮(回车)的功能,但我对此还是新手。 我知道我的代码中有一些错误,但我想做的是当我按下行按钮时我想让它显示输入X、Y、Z,然后等到按下enter键,执行我想添加的其余代码。我如何在代码中实现类似的东西 这是我的main活动课程: public class MainActivity extends Activity implements OnClickListener { @Override protected void onCreate(Bundle s

我想在我的代码中添加一个等待,直到按下
按钮
(回车)的功能,但我对此还是新手。 我知道我的代码中有一些错误,但我想做的是当我按下
按钮时
我想让它显示输入X、Y、Z,然后等到按下enter键,执行我想添加的其余代码。我如何在代码中实现类似的东西

这是我的
main活动
课程:

public class MainActivity extends Activity implements OnClickListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button enter = (Button) findViewById(R.id.enter);
    Button line = (Button) findViewById(R.id.line);
    Button arc = (Button) findViewById(R.id.arc);

    line.setOnClickListener(this);
    enter.setOnClickListener(this);
    arc.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    TextView vector = (TextView) findViewById(R.id.point);
    TextView index = (TextView) findViewById(R.id.index);
    TextView info = (TextView) findViewById(R.id.info);
    EditText cl = (EditText) findViewById(R.id.editText1);
    DrawingUtils call = new DrawingUtils();
    switch (v.getId()) {
    case R.id.line:
        info.setText("Input X,Y,Z");
        // This Is Where the Wait Function Will GO
        vector.setText(call.addVertice());
        index.setText("1");

        break;
    case R.id.enter:
        String In = cl.getText().toString();
        call.setInputCoords(In);
        break;
    case R.id.arc:
        info.setText("Enter Vertice1 ");
        // Code for entering Vertice1(Also has wait function)
        info.setText("Enter Vertice2");
        // Code for entering Vertice2(Also has wait function)
        info.setText("Enter Height");
        //Code for entering Height(Also has wait function)

    }

}
public class DrawingUtils {
String inputCoords;
String[] vertice;

public String getInputCoords() {
    return inputCoords;
}

public void setInputCoords(String inputCoords) {
    this.inputCoords = inputCoords;
}

public String addVertice() {
    int i = 0;
    vertice = inputCoords.split(",");
    return vertice[i];

}
}

这是我的
DrawingUtils
课程:

public class MainActivity extends Activity implements OnClickListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button enter = (Button) findViewById(R.id.enter);
    Button line = (Button) findViewById(R.id.line);
    Button arc = (Button) findViewById(R.id.arc);

    line.setOnClickListener(this);
    enter.setOnClickListener(this);
    arc.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    TextView vector = (TextView) findViewById(R.id.point);
    TextView index = (TextView) findViewById(R.id.index);
    TextView info = (TextView) findViewById(R.id.info);
    EditText cl = (EditText) findViewById(R.id.editText1);
    DrawingUtils call = new DrawingUtils();
    switch (v.getId()) {
    case R.id.line:
        info.setText("Input X,Y,Z");
        // This Is Where the Wait Function Will GO
        vector.setText(call.addVertice());
        index.setText("1");

        break;
    case R.id.enter:
        String In = cl.getText().toString();
        call.setInputCoords(In);
        break;
    case R.id.arc:
        info.setText("Enter Vertice1 ");
        // Code for entering Vertice1(Also has wait function)
        info.setText("Enter Vertice2");
        // Code for entering Vertice2(Also has wait function)
        info.setText("Enter Height");
        //Code for entering Height(Also has wait function)

    }

}
public class DrawingUtils {
String inputCoords;
String[] vertice;

public String getInputCoords() {
    return inputCoords;
}

public void setInputCoords(String inputCoords) {
    this.inputCoords = inputCoords;
}

public String addVertice() {
    int i = 0;
    vertice = inputCoords.split(",");
    return vertice[i];

}
}我想这就是你想要的。如果没有道歉

使用布尔标志来处理应用程序中的状态。这样,如果发生了什么事情,您可以执行不同的代码

boolean enterPressed = false;    

@Override
public void onClick(View v) {
    TextView vector = (TextView) findViewById(R.id.point);
    TextView index = (TextView) findViewById(R.id.index);
    TextView info = (TextView) findViewById(R.id.info);
    EditText cl = (EditText) findViewById(R.id.editText1);
    DrawingUtils call = new DrawingUtils();
    switch (v.getId()) {
    case R.id.line:
        if (enterPressed) {
            vector.setText(call.addVertice());
            index.setText("1");
        }
        else {
            info.setText("Input X,Y,Z");
        }

        break;
    case R.id.enter:
        String In = cl.getText().toString();
        call.setInputCoords(In);
        enterPressed = true;
        break;
    case R.id.arc:
        info.setText("Enter Vertice1 ");
        // Code for entering Vertice1
        info.setText("Enter Vertice2");
        // Code for entering Vertice2

    }

}   

在上面的代码中,当按下“行”按钮时,“信息”文本视图将变为“输入X、Y、Z”。然后,在按下enter按钮和
String In=cl.getText().toString()之前,不会发生任何事情;call.setInputCoords(In)将执行。这不是您想要的吗?为什么不在单击enter按钮时执行所需的代码呢。我想那就没必要再等了。铁路超高必须从线路上执行。我将在我的应用程序中添加其他按钮,如圆弧和多段线。我只想按Enter按钮输入浮动。我仍然不清楚问题出在哪里。代码出错了吗?谢谢,我想如果我能在else中输入一个switch语句并获取按钮的ID,这可能会起作用。它会给我灵活地执行其他按钮的代码,但像arc一样,有三件事需要输入,这是我认为会给我带来麻烦的部分。