我正在android studio中编写一个移动停车应用程序。在一个活动中,我有一个编辑文本字段,用户可以在其中输入停车时间,然后为所选的停车位付费,之后,他立即转到另一个活动,其中该位置的按钮亮起红色,并且必须延迟等于用户指定的停车时间,按钮再次变为绿色。但这里延迟是我们自己输入的常数。我试过了:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
button1.setBackgroundColor(-16711936);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent1 = new Intent(Park.this, Slot1.class);
startActivity(intent1);
}
});
}
}, 30000);
下面是如何使用EditText获取时间的方法,假设时间单位为分钟。
class ParkingRequestActivity extends AppCompatActivity {
// Other codes...
private EditText etParkTimeInput;
// Maybe some more codes...
@Override
protected void onCreate(Bundle savedInstanceState) {
// Other codes...
etParkTimeInput = findViewById(R.id.parkTimeInputEditText);
etParkTimeInput.setOnEditorActionListener((editText, actionId, event) -> {
if(actionId == EditorInfo.IME_ACTION_DONE) {
// User pressed done button
final String parkingTimeInput = editText.getText().toString();
try {
int parkingTime = Integer.parseInt(parkingTimeInput);
// From now on we have the time in minutes as an integer
int parkingTimeInMilliseconds = parkingTime * 60 * 1000;
// parkingTimeInMilliseconds can be used as delay value for handler
} catch(NumberFormatException exception) {
exception.printStackTrace();
Toast.makeText(ParkingRequestActivity.this, "Please enter a valid time", Toast.LENGTH_SHORT).show();
}
}
return false;
}
}
// Rest of the activity's code...
}
这是你想要达到的目标吗?这个按钮是从哪里来的?