在打开该活动窗口的几秒钟内触发按钮按下

时间:2016-05-06 03:02:00

标签: android android-studio android-intent android-edittext onclicklistener

是否有一种简单的方法可以在我的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();
        }
    }
}

3 个答案:

答案 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);

performClick() & callOnClick()

上查看更多内容