0

私は Android で Base アダプターに取り組んでおり、何らかのアクティビティで onBackPress を押すと、どのオーバーライドされたメソッドが BaseAdapter クラスで呼び出されるかを知りたいです。私を助けてください、私は検索しましたが、解決策が見つかりませんでした。

4

4 に答える 4

1

おそらくリストビューがあり、リストビュー用にカスタムアダプターが設定されています。リストビューはあなたの活動にあります。

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
 {
    ....................
 }

したがって、戻るボタンを押すと、現在のアクティビティがバック スタックからポップされ、破棄され、バック スタック内の前のアクティビティがフォーカスされます。これがデフォルトの動作です。

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;
}
于 2013-04-18T07:17:47.957 に答える
0

アクティビティでonBackPressedをオーバーライドし、それに応じてデータをアダプターに変更してから、notifyDataSetChangedを呼び出します

于 2013-04-18T06:49:55.107 に答える