【问题标题】:Trigger a button press within a few seconds of opening that activity window在打开该活动窗口的几秒钟内触发按钮按下
【发布时间】:2016-05-06 03:02:00
【问题描述】:

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

【问题讨论】:

  • 为什么要点击按钮??您可以直接在 onCreate() 中检查该条件
  • 所以我应该写 b.onCreate 而不是 setonclicklistener?

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


【解决方案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()上查看更多信息

【讨论】:

    【解决方案2】:

    在您的 onCreate 中设置 onClickListener 后直接说明。

     new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                  b.callOnClick();
                }
            }, 1000);
    

    不知道为什么你不只是编写一个方法而不是触发点击。

    【讨论】:

    • 我使用点击的唯一原因是因为这是我目前知道的唯一方法,我将如何实现一个方法,因为这将使我免于这个额外的步骤
    【解决方案3】:
    @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();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-06-07
      • 1970-01-01
      • 1970-01-01
      • 2016-08-07
      • 1970-01-01
      • 1970-01-01
      • 2016-10-12
      • 2022-10-05
      • 1970-01-01
      相关资源
      最近更新 更多