Android,检查是否按下了按钮

时间:2017-08-17 08:15:13

标签: java android button android-activity back

我有两个观点和活动。 第一个是旋转器。在第二个,您可以创建新条目(存储在活动1中的微调器的数据库中)。 如果用户完成并按下后退按钮,我必须刷新活动1上的微调器(因为新条目)。

是否可以检查,如果应用返回到活动1,因为活动2中的后退按钮被按下了?

我知道,我可以使用onResume方法来实现它,但是这个方法被称为EVERYTIME我返回活动一,而不仅仅是因为后退按钮。

我只想在按下后退按钮时刷新微调器。

任何解决方案?我可以检查onResume方法中是否按下了后退按钮吗?

4 个答案:

答案 0 :(得分:1)

您可以在第二个活动中覆盖onBackPressed()。当用户按下后退按钮时,将调用此方法。

您可以在hasBackPressed = true

中将信息作为布尔setResult()传递

从活动1开始活动2:

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);

从活动2传回信息:

    @Override
    public void onBackPressed() {
        Intent returnIntent = new Intent();
        returnIntent.putExtra("hasBackPressed",true);
        setResult(Activity.RESULT_OK,returnIntent);
        finish();
    }

接收活动1中的数据:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {
        if(resultCode == Activity.RESULT_OK){
            boolean hasBackPressed = data.getBooleanExtra("hasBackPressed");
        }
        if (resultCode == Activity.RESULT_CANCELED) {
            //Write your code if there's no result
        }
    }
}

答案 1 :(得分:1)

您可以使用startActivityForResult()为结果启动活动2。在活动2上,您可以在添加新项目时将结果设置为RESULT_OK。然后,在活动1的onActivityResult()方法中,您可以检查返回的结果并在需要时更新您的数据。

答案 2 :(得分:1)

覆盖 $array = array( 'lists' => array( '0' => array( 'id' => '23ybdwhdwbed', 'name' => 'TEST 1' ), '1' => array( 'id' => 'e223edsewed', 'name' => 'TEST 2' ) ) ); foreach ($array as $key => $value) { for($ctr = 0; $ctr < count($value); $ctr++){ echo 'ID: ' . $value[$ctr]['id'] . '<br>'; echo 'Name: : ' . $value[$ctr]['name'] . '<br><br>'; } } 方法并在此功能中执行操作。

onBackPressed()

答案 3 :(得分:0)

使用startActivityForResult()开始第二项活动,并在第二项活动的onBackPressed()中返回一些值。抓住onActivityResult()中的那个,然后在那里刷新微调器。

查看this