android - 单击项目时从 ListActivity 返回到上一个 Activity

标签 android android-activity

我有一个设置 Activity ,底部有一个“扫描”按钮:

settings

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

(我打算稍后切换到 fragment 。现在我想使用 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);
}

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

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?

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

最佳答案

我同意其他答案,即调用 finish 是解决方案。但您应该了解有关使用 finish 方法的一些知识。

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

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

  • 如果您不希望在用户按下后退按钮时一次又一次加载此 Activity,则可以使用此方法。因为它也会清除后台堆栈中的 Activity 。
  • 使用 finish() 方法时请记住这一点。

    关于android - 单击项目时从 ListActivity 返回到上一个 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27910631/

    相关文章:

    java - 从另一个 Activity 中调用方法

    Android - 如何使用包含多种字体的自定义字体文件

    Android ViewFlipper,如何正确使用?它又慢又滞

    android - 在许多 Android Activity 中使用当前位置

    android - 如何使用Viewpager和Fragment分割窗口?

    android - WindowManager 中的全屏

    android - 如何以编程方式关闭 SearchView?

    jquery - android 性能 jquery PhoneGap 问题

    android - 制作所有16个模拟器组合

    android - 如何在 onPause 后恢复 ExoPlayer