1

ユーザーがリストからお気に入りのアイテムのリストを保存できるようにしたいので、チェックボックス付きのリストビューを使用して完全なリストを表示し、ユーザーはリスト内のアイテムをチェックまたはチェック解除します。

ユーザーが戻るボタンを押したときに、チェックアウトしたアイテムを SD カードの別のファイルに保存できるようにしたい。

アクティビティで次のメソッドを使用しています。

@Override
  public void onBackPressed() {
  // TODO Auto-generated method stub

  }

ただし、OnCreate メソッド内で作成したリストは、onBackPressed メソッド内では使用できません。つまり、範囲外です。

次のように、リストを onBackPressed メソッドに渡そうとすると、次のようになります。

@Override
  public void onBackPressed(ArrayList<HashMap<String, Object>> checked_list) {
  // TODO Auto-generated method stub

  }

次に、エラーが発生します。

「タイプ SetFavourites のメソッド onBackPressed(ArrayList>) は、スーパータイプ メソッドをオーバーライドまたは実装する必要があります」と Eclipse は @Override を削除するように求めます。

しかし、これを行うと、onBackPressed メソッドが呼び出されることはありません。

終了する前にアクティビティ内のデータに対してアクションを実行できるように、onBackPressed メソッドに変数を渡すにはどうすればよいですか?

ありがとう

4

2 に答える 2

1

クラスのスコープ内、つまり onCreate() の外で変数を定義できます。

class Example {
    int mVisible = 0;

    void onCreate() {
        int notVisible = mVisible;
    }

    void onBackPressed() {
        mVisible = 10;
    }
}
于 2012-05-08T23:56:07.247 に答える
1

@Override存在しないメソッドをオーバーライドするために使用することはできません。つまり、クラスonBackPressed(ArrayList<...> foo)の既存のメソッドではありません。Activity

リストにアクセスするには、それをあなたのインスタンスメンバーとして宣言しますActivity...

public class MyActivity extends Activity {

    ArrayList<HashMap<String, Object>> checked_list;

    // onCreate(...) here

    // onBackPressed() here

}
于 2012-05-09T00:00:53.323 に答える