Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.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 如何在Android中编写等待输入的while循环?(已解决)_Java_Android_Android Studio_Methods_While Loop - Fatal编程技术网

Java 如何在Android中编写等待输入的while循环?(已解决)

Java 如何在Android中编写等待输入的while循环?(已解决),java,android,android-studio,methods,while-loop,Java,Android,Android Studio,Methods,While Loop,我的问题很简单。我可以用什么方法告诉我的程序按钮被按下?我正在尝试一些代码行,但它并没有真正起作用(我尝试使用iPressed)。在我的日志中,我甚至可以在输入值之前读取-->TAMAñO DEL CONTADOR:行,因此我知道循环不会等待我的输入 这是我的密码: public class navegador extends AppCompatActivity { public String Sdat; public EditText ET2; int tam; ArrayList<

我的问题很简单。我可以用什么方法告诉我的程序按钮被按下?我正在尝试一些代码行,但它并没有真正起作用(我尝试使用iPressed)。在我的日志中,我甚至可以在输入值之前读取-->TAMAñO DEL CONTADOR:<直到达到最大值>行,因此我知道循环不会等待我的输入

这是我的密码:

public class navegador extends AppCompatActivity {

public String Sdat;
public EditText ET2;
int tam;

ArrayList<String> Medidas;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_navegador);

    ET2 = findViewById(R.id.ET1);
    Button bot = findViewById(R.id.bot);

    tam = getIntent().getIntExtra("numero",0);

    Medidas = new ArrayList<>();
    int contador = 0;

    System.out.println("TAMAÑO DEL ARRAY: "+ tam);

    while ( contador <= tam){

        System.out.println("TAMAÑO DEL CONTADOR: " + contador);

        bot.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View bot) {
                if(bot.isPressed()){
                    MeterMedida();
                }
            }
        });
        contador++;

        if(contador == tam){

            Toast.makeText(this, "Distancia máxima alcanzada. Toca Crear tabla.", Toast.LENGTH_SHORT).show();

        }
    }
}

public void MeterMedida(){

    Sdat = ET2.getText().toString();
    Medidas.add(Sdat);
    ET2.setText("");

}

public void LanzarLista (View view){

    Intent A = new Intent(this, Lista.class);
    A.putStringArrayListExtra("Lista", Medidas);
    startActivity(A);
}
}
公共类navegador扩展AppCompative活动{
公共字符串Sdat;
公共编辑文本ET2;
INTTAM;
阿雷利斯特·梅迪达斯;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_navegador);
ET2=findViewById(R.id.ET1);
按钮bot=findviewbyd(R.id.bot);
tam=getIntent().getIntExtra(“numero”,0);
Medidas=新阵列列表();
int contador=0;
System.out.println(“TAMAñO DEL数组:“+tam”);

当(contador你说你想在按下按钮时告诉你的应用程序,做点什么。没有必要使用isPressed()方法。就这样做吧

 bot.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View bot) {     
            //When you press this button (bot), codes here will be executed.
            MeterMedida();

        }
    });

您不需要
循环:

    //a list to keep all the entered floats
    private List<Float> floats = new ArrayList<Float>();

    //each time you click the listener is invoked
    bot.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View bot) {

                //every time the button is clicked, fill the current typed float


             floats.add(Float.parseFloat(ET2.getText().toString()));
             ET2.setText("");

        }
    });
//保存所有输入浮动的列表
私有列表浮动=新的ArrayList();
//每次单击都会调用侦听器
bot.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(查看bot){
//每次单击按钮时,填充当前键入的浮动
add(Float.parseFloat(ET2.getText().toString());
ET2.setText(“”);
}
});

好吧,我不会给出完整的答案。只是给你自己一些提示

  • 在类级别声明
    int contador=0;

  • 删除
    while(contador为什么你需要一个while循环?@HasanBouTaam我需要它来填充用户用EditText一个接一个引入的浮点值数组列表当你设置一个监听器时,无论如何都会有一个循环运行。你不需要自己做。你可以把你所有的逻辑都放到监听器中,当它被触发时,你可以按照我的建议去做你了解Android的事件系统。你永远不需要做一个等待事件发生的循环。Android已经有了这个循环,并且总是有一种方法来注册一个函数,该函数将被称为你想要响应的事件发生。啊,我不知道,好吧,我删除了while,现在效果很好。谢谢,很好,如果有帮助的话ped接受答案,让其他有同样问题的人知道。谢谢你的建议,这两条评论都非常有用。我从这里开始,再次感谢。