使用onBackPressed来保存文件

时间:2012-05-08 23:53:59

标签: android

我想允许用户从列表中保存喜欢的项目列表,因此我使用带有复选框的Listview显示完整列表,用户将选中或取消选中列表中的项目。

当用户按下后退按钮时,我希望能够将检查的项目保存到SD卡上的单独文件中。

我在我的Activity中使用以下方法:

@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&gt;)方法必须覆盖或实现超类型方法”并且Eclipse会提示删除@Override。

但是当我这样做时,onBackPressed方法永远不会被调用。

如何将变量传递给onBackPressed方法,以便我可以在退出之前对Activity中的数据执行操作?

由于

2 个答案:

答案 0 :(得分:1)

您可以在类的范围内定义变量,即在onCreate()之外。

class Example {
    int mVisible = 0;

    void onCreate() {
        int notVisible = mVisible;
    }

    void onBackPressed() {
        mVisible = 10;
    }
}

答案 1 :(得分:1)

您无法使用@Override覆盖不存在的方法。换句话说,onBackPressed(ArrayList<...> foo)不是Activity类的现有方法。

要访问您的列表,请将其声明为Activity ...

的实例成员
public class MyActivity extends Activity {

    ArrayList<HashMap<String, Object>> checked_list;

    // onCreate(...) here

    // onBackPressed() here

}