Имам проблем с бутона за връщане назад на хардуера. В моята основна дейност имам един изглед на списък (да речем 1). Когато щракна върху елемент от този изглед на списък (1), се появява един диалогов прозорец за предупреждение, в този диалогов прозорец за предупреждение има един изглед на списък (да кажем 2). Данните от този изглед на списък(2) се повтарят, когато натисна бутона за връщане назад на хардуера. Също така поставих изображение за отмяна в този диалогов прозорец за предупреждение за отхвърляне, когато натисна това изображение за отмяна, данните не се повтарят. Опитах различни методи onResume(), onPause(), onDestroy(), onRestart(), за да изчистя масива за List view(2), но нищо не работи. Ето моя код...
case LIST_DIALOG :
LayoutInflater inflater2 = LayoutInflater.from(this);
View dialogview1 = inflater2.inflate(R.layout.listdialog, null);
AlertDialog.Builder dialogbuilder2 = new AlertDialog.Builder(this);
dialogbuilder2.setView(dialogview1);
dialogDetails = dialogbuilder2.create();
case LIST_DIALOG:
AlertDialog alertDialog1 = (AlertDialog) dialog;
// Cancel Alert Dialog
ImageView ivCancel = (ImageView) alertDialog1.findViewById(R.id.imgCancel);
ivCancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
dismissDialog(LIST_DIALOG);
arr2.clear();
}
});
// Friend List
showFriendList();
break;
// Данните за списъчен изглед се вмъкват с това извикване на функция private void showFriendList() { // TODO Автоматично генериран метод stub Request.executeMyFriendsRequestAsync(friendSession, new GraphUserListCallback() {
@Override
public void onCompleted(List<GraphUser> users, Response response) {
// TODO Auto-generated method stub
// arr2 = new ArrayList<String>();
for(GraphUser user : users)
{
arr2.add(user.getName());
}
adapter2 = new ArrayAdapter<String>(getBaseContext(), R.layout.single_row, R.id.txt,arr2);
lvDialog.setAdapter(adapter2);
lvDialog.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
adapter2.notifyDataSetChanged();
itemCount = lvDialog.getCount();
Toast.makeText(getBaseContext(), "" + itemCount, 1000).show();
}
});
}
// Опитах тези методи, но нищо не работи...
@Override
public void onResume()
{
super.onResume();
ShowSavedFiles();
arr2.clear();
}
@Override
public void onPause()
{
super.onPause();
arr1.clear();
arr2.clear();
}
@Override
public void onBackPressed() {
//super.onBackPressed();
// finish your Activity
arr2.clear();
return;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
arr2.clear();
dismissDialog(LIST_DIALOG);
}
return false;
}