单击项目时从ListActivity返回上一个活动

时间:2015-01-12 20:57:49

标签: android android-activity

我有一个带有" Scan"的SettingsActivity;底部的按钮:

settings

单击该按钮时,它将启动ListActivity:

(我打算稍后切换到片段。现在我想使用活动。)

<Button
    android:id="@+id/scanButton"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="startScanning"
    android:text="Scannen und Beacon ausw\u00E4hlen..." />

public void startScanning(View v) {
    Intent i = new Intent(this, ScanningActivity.class);
    startActivity(i);
}

当在该列表中点击了一个项目(蓝牙设备)时 - 我保存该项目并显示一个祝酒词,告诉用户转到上一个屏幕:

screenshot

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    BluetoothDevice device = (BluetoothDevice) getListView().getItemAtPosition(position);
    String address = device.getAddress();
    mEditor.putString(CommonConstants.PREF_ADDRESS, address);
    mEditor.commit();

    Toast.makeText(this,
        "Ger\u00E4t-Adresse gespeichert, bitte Dienst neu starten", 
        Toast.LENGTH_SHORT)
        .show();
}

我的(可能是非常基本的)问题:我的应用程序如何才能返回上一个屏幕,而不是显示吐司?

在上述Toast.makeText()方法中调用哪种方法而不是onListItemClick()

3 个答案:

答案 0 :(得分:2)

我同意其他答案,称完成是解决方案。但是你应该对使用finish方法知之甚少。

  1. 调用finish()的方法将运行完成。在您将控制权返回给Android之前,finish()操作甚至不会开始。
  2. 所以,你应该在完成之后放一个return语句,因为调用finish的方法将完全执行。

    1. 如果您不希望在用户按下后退按钮时反复加载此活动,则可以使用此方法。因为它也清除了后台堆的活动。
    2. 使用finish()方法时请记住这一点。

答案 1 :(得分:1)

我认为

ActivityName.this.finish();

应该足够了。

答案 2 :(得分:0)

您需要做的就是关闭当前活动

ScanningActivity.this.finish();