我自定义了一个登陆的dialog的类,这个对话框在很多Activity里面都要调用。请问,如何在登陆成功之后在这个自定义的dialog中使用SharedPreferences来保存用户的信息?
解决方案 »
- Android 圆形ImageView 怎样解决边缘锯齿的问题
- scroll同步
- java源码 实现网页更新
- NDK开发,从JAVA层传递jbyteArray 到JNI的转换问题
- 【android】关于LruCache的问题
- android如何实现多线程
- 求!助!Android模拟器出现问题 emulator: Failed to sync vcpu reg
- Log.d之类的函数为何不能再onCreate之外其他地方使用
- 【100分】红米1代手机 测试 正在开发的安卓应用
- 安卓(android)手机关掉权限会怎样?
- 直接安装最新的apk而不用打开其他的程序的实现
- android的xml里面的一些基本属性!
在自定义的dialog在无法使用SharedPreferences,因为它是继承dialog类,没有实现Context中的getSharedPreferences方法。。
因为你用了匿名内部类的方式使用,所以找不到Context。你
一是不用匿名内部类的方式写这个dialog;
一是将外部的Context保存在一个变量中,然后在匿名内部类中使用那个变量,
一是将getSharedPreferences写成一个方法,在你的匿名内部类中使用这个方法。
private Button button = null;
public void onCreate() {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_dialog);
setTitle("用户登陆"); button = (Button) findViewById(R.id.login);
confirm.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View arg0) {
// 我需要在这里登陆成功之后使用SharedPreferences保存信息
}
});
}
}代码大概就是这样,太多了贴了你们也不方便看。如果不把dialog单独写成一个类,而在activity里面实现的话,是可以用SharedPreferences的。但是这个登陆框我在很多地方都要用,所以我想把它单独拿出来,然后在activity里面需要用的时候实例化一个对象。但是这样的话就不能用SharedPreferencds了。。我试过调用dialog的getOwenerAcitivy().getSharedPreferences() ,但是好像也不行。。我这个问题该如何解决呢????
然后想用这个dialog的类extend这个有dialog的类就可以了
这样不太好吧我决定写一个类似dialog的activity了