2013-04-18 40 views
0

我在Android的基本適配器上工作,我想知道哪些重寫方法在BaseAdapter類中調用,如果我在某些活動中按onBackPress。請幫助我,我已經搜索並沒有找到任何解決方案。方法獲取調用onBackPress在android

回答

0

的onBackPressed會在你的Activity類被激活。它不是BaseAdapter類的事件。所以在Activity類中覆蓋你的onBackPressed方法。

1

你可能有listview,你有一個爲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();無論你想要的地方。