是否有一种简单的方法可以在我的Android应用程序中打开该窗口/活动的1秒内自动按下按钮。
目前我需要按下' bVoice'按钮,使用b.setOnClickListener(this)
开始语音识别。我希望不要在打开特定窗口/活动的1秒钟内按下按钮自动按下。
是否有一种简单的方法来实现这一目标?以下是我的代码的一部分:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
ListView lv;
static final int check = 1111;
Button b;
EditText a;
Button c;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lvVoiceReturn);
a = (EditText) findViewById(R.id.TFusername);
b = (Button) findViewById(R.id.bVoice);
c = (Button)findViewById(R.id.Blogin);
b.setOnClickListener(this);
}
public void onButtonClick(View v) {
if (v.getId() == R.id.Blogin) {
String str = a.getText().toString();
//Go to the relevant page if any part of the phrase or word entered in the 'EditText' field contains 'next' which is not case sensitive
if (str.toLowerCase().contains("next")) {
Intent userintent = new Intent(MainActivity.this, Display_1.class);
startActivity(userintent);
} else if (str.toLowerCase().contains("heart")) {
Intent userintent = new Intent(MainActivity.this, Display_2.class);
startActivity(userintent);
} else {
Toast.makeText(getApplicationContext(), "Incorrect Information", Toast.LENGTH_SHORT).show();
}
}
}
答案 0 :(得分:1)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lvVoiceReturn);
a = (EditText) findViewById(R.id.TFusername);
String str = a.getText().toString();
if (str.toLowerCase().contains("next")) {
Intent userintent = new Intent(MainActivity.this, Display_1.class);
startActivity(userintent);
} else if (str.toLowerCase().contains("heart")) {
Intent userintent = new Intent(MainActivity.this, Display_2.class);
startActivity(userintent);
} else {
Toast.makeText(getApplicationContext(), "Incorrect Information", Toast.LENGTH_SHORT).show();
}
}
答案 1 :(得分:1)
在onCreate中设置onClickListener后直接放这个。
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
b.callOnClick();
}
}, 1000);
不知道你为什么不写一个方法而不是触发点击。
答案 2 :(得分:1)
设置 onClickedListener 后,只需简单的解决方案在onCreate()
中添加以下代码
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
b.callOnClick();// from API 15
or
b.performClick()// from API 1
}
}, 1000);
上查看更多内容