2010-11-04 2 views
0

Я немного доволен функциональностью кнопки кнопки устройства.Функциональность Android Back Button

У меня есть два вида деятельности. С 1-го я перехожу на 2-й и показываю один элемент через массив в ListView, и когда я нажимаю кнопку «Назад», я вернулся к 1-й активности.

, когда я снова перехожу к второму действию, чтобы отобразить элемент еще раз, показывая мне предыдущие элементы в первой строке, а затем тот же элемент во втором ряду.

Значит, он не удаляет предыдущий элемент, когда я нажимаю кнопку «Назад».

Я использовал:

public void onBackPressed() 
    { 
     for(int i=0; i<sub_categories.length;i++) 
     { 
      sub_categories[i]=""; 
     } 
     Log.d(this.getClass().getName(), "*****************back button pressed"); 

    } 
+2

Вам должно быть надоело, как вы написали свой код, а не кнопку «Назад». – Falmarri

ответ

1

Я не совсем уверен, что вы пытаетесь сделать, так как вы не описывает, где вы на самом деле удалить пункт.

Если вы действительно хотите удалить элемент, который вы выделили, оставив действие № 2, вы можете удалить его в onStop().

Если вы не хотите запоминать состояние при выходе из этой активности, вы должны установить android: saveEnabled = "false" в манифесте компоновки.

0

Вам необходимо уведомить адаптер, что данные были изменены с помощью notifyDataSetChanged. А адаптер скажет ListView, чтобы обновить его.

0

Вот как вы можете запустить код на нажатие клавиши:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 
     Log.d("BACK KEY PRESSED"); 
    } 
    return super.onKeyDown(keyCode, event); 
} 

После возвращения к деятельности, использовать notifyDatasetChanged в деятельности onResume(), чтобы обновить список.

Смежные вопросы