Я достиг этого, используя всего лишь два шага:
Шаг 1: перейдите в AndroidManifest.xml и добавьте параметр в тег - android: parentActivityName = ". home.HomeActivity"
example:
<activity
android:name=".home.ActivityDetail"
android:parentActivityName=".home.HomeActivity"
android:screenOrientation="portrait" />
Шаг 2: в ActivityDetail добавьте действие для предыдущей страницы / активности
:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
До тех пор, пока p + i
(для любого i
, положительного или отрицательного) не выходит за пределы в любом направлении (т. Е. Оно не указывает до tab[0]
или после tab[n - 1]
в вашем примере) тогда все в порядке.
И помните, что для любого указателя или массива p
и индекса i
выражение *(p + i)
равно точно , равно p[i]
.
Если быть точным, то можно иметь указатель на где угодно , если он указывает на действительную память, когда вы разыменовываете указатель.
Пример:
int tab[N]; // Exact value of N is irrelevant
int *p = tab; // Equal to p = &tab[0]
p--; // After this, p will be pointing out of bounds, this is okay
// Comparing pointers is okay
if (p < tab)
{
/* ... */
}
printf("Value of *p = %d\n", *p); // ERROR: Here you dereference the ouf-of-bounds pointer