У меня есть SettingsActivity с кнопкой «Scan» в нижней части:Возврат к предыдущей деятельности с ListActivity по пункту нажмите
Когда эта кнопка нажата, она начинает 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);
}
Когда элемент (а Bluetooth-устройство) был нажат в этот список - я сохранить этот пункт и показать тост, который сообщает пользователю, чтобы перейти к предыдущему экрану:
@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()
?
Если вы хотите вернуть данные, вы можете [видеть этот ответ об использовании startActivityForResult()] (http://stackoverflow.com/questions/18243515/android-going-back-to-previous-activity-with -different-intent-value/18243541 # 18243541) – codeMagic
Спасибо +1, но я не понимаю, как передать мой адрес (который является 'String') назад - поскольку' setResult (Activity.RESULT_OK, адрес); 'хочет второй аргумент должен быть «Intent» ... –
См. нижнюю часть этого ответа. Он принимает «намерение», поэтому вы создаете его с помощью пустого конструктора и добавляете к нему «String Extra», как если бы вы передавали значение от A до B через «Intent» – codeMagic