我的问题很简单,我可以用什么方法来告诉我的程序有一个按钮被按下?我可以用什么方法来告诉我的程序一个按钮被按下了?在我的日志中,我可以读到这一行--> 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);
}
}
非常感谢,如果你需要更多的信息,可以问我。
和往常一样,少即是多,我去掉了while和contador变量,现在它的工作原理和我想要的一样,而且非常简单。非常感谢你。
你不需要一个 while
循环。
//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("");
}
});
你说你想告诉你的应用程序 当一个按钮被按下时,做一些事情。没有必要使用isPressed()方法。就像这样做。
bot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View bot) {
//When you press this button (bot), codes here will be executed.
MeterMedida();
}
});
好吧,我不会给出完整的答案。只是给你一些提示,让你自己去弄明白。
int contador = 0;
同级while ( contador <= tam)
if(bot.isPressed())
contador++;
在你 onCreate
MeterMedida()
检验 if(contador <= tam)
. 如果 true
,加到 ArrayList
并增加 contador
. 否则显示错误 Toast
.