在打开该活动窗口的几秒钟内触发按钮按下
Posted
技术标签:
【中文标题】在打开该活动窗口的几秒钟内触发按钮按下【英文标题】: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? 【参考方案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();
【讨论】:
以上是关于在打开该活动窗口的几秒钟内触发按钮按下的主要内容,如果未能解决你的问题,请参考以下文章