Return 到列表Activity 中的上一个 Activity 单击项目

Return to previous Activity from ListActivity on item click

我有一个 SettingsActivity,底部有一个 "Scan" 按钮:

单击该按钮时,它会启动一个 ListActivity:

(打算以后改成fragments,暂时想用activity)

<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);
}

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

@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();
}

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

在上面的onListItemClick()方法中调用什么方法来代替Toast.makeText()

我觉得

ActivityName.this.finish();

应该够了。

您需要做的就是像这样关闭电流activity

ScanningActivity.this.finish();

我同意其他答案,即调用 finish 是解决方案。但是你应该知道一些关于使用 finish 方法的事情。

  1. 调用 finish() 的方法将 运行 完成。在您 return 控制到 Android.
  2. 之前,finish() 操作甚至不会开始

因此,您应该在 finish 之后放置一个 return 语句,否则调用 finish 的方法将被完全执行。

  1. 如果您不希望此 activity 在用户按下后退按钮时一次又一次地加载,则可以使用此方法。因为它也从后台清除 activity。

请在使用 finish() 方法时记住这一点。