2013-04-18 2 views
0

Я работаю над базовым адаптером в Android, и я хочу знать, какой метод overriden получает вызов в BaseAdapter Class, если я нажимаю onBackPress в какой-то активности. Пожалуйста, помогите мне, я искал и не нашел никакого решения.Метод получает вызов onBackPress в android

ответ

0

onBackPressed будет активирован в вашем классе активность. Это не событие класса BaseAdapter. Поэтому переопределите метод onBackPressed в классе Activity.

1

У вас, вероятно, есть listview, и у вас есть настраиваемый набор адаптеров для списка. Listview в вашей деятельности.

class MyActivity extends Activity 
{ 
    @Override 
    public void onCreate(Bundle savedInstancestate) 
    { 
      setContentView(R.layout.main); 
      ListView lv= (ListView) findViewById(R.id.listview); 
      CustomAdapter cus= new CustomAdapter(MyActivity.this); 
      lv.setAdapter(cus); 
    } 
} 
class CustomAdapter extends BaseAdapter 
{ 
    .................... 
} 

Так что, когда вы нажимаете кнопку назад текущая активность выталкивается форма стек назад, разрушали и предыдущая деятельность в стеке обратно занимает focus.This поведение по умолчанию.

http://developer.android.com/guide/components/tasks-and-back-stack.html

Вы можете переопределить OnKeyDown (PARAMS) в своей деятельности

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
if (keyCode == KeyEvent.KEYCODE_BACK) { 
    onBackPressed(); 

} 

return super.onKeyDown(keyCode, event); 
} 

public void onBackPressed() { 
    //do something 
finish(); 
return; 
} 
0

вы можете передать активность reference к адаптеру через constructor как:

CustomAdapter customAdapter=CustomAdapter(getApplicationContext(),arrayList,HomeActivity.this); 

и в вашем Пользовательский адаптер

public class CustomAdapter extends BaseAdapter { 
Context context; 
ArrayList<CategoryModel> arrCategoryModel; 
AppCompatActivity activity; 
public CustomAdapter(Context context, ArrayList<CategoryModel> arrCategoryModel, AppCompatActivity activity) 
{ 
    this.context=context; 
    this.arrCategoryModel=arrCategoryModel; 
    this.activity=activity; 
} } 

Теперь вы можете позвонить по номеру activity.onBackPressed();, где захотите.