【发布时间】:2013-11-20 23:35:09
【问题描述】:
所以我正在尝试制作一个“设置”屏幕,它似乎可以工作,直到我意识到首选项不会对点击做出反应。我尝试使用 onPreferenceStartFragment,但遇到了一个奇怪的错误,我遇到了一行
boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref)
这是 onPreferenceStartFragment:
public interface OnPreferenceStartFragment {
boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref);
//Syntax error on token ";", { expected after this token
if(pref == password) {
LayoutInflater inflater = LayoutInflater.from(context);
final View text = inflater.inflate(R.layout.changepassword, null);
final EditText currentPassword = (EditText)text.findViewById(R.id.currentPassword);
final EditText newPassword = (EditText)text.findViewById(R.id.newPassword);
final AlertDialog.Builder alert = new AlertDialog.Builder(context);
alert.setTitle("Change Your Password");
alert.setView(text);
alert.setPositiveButton("Change", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String stringData = currentPassword.getText().toString().trim();
String stringNew = newPassword.getText().toString().trim();
dataReturned = myFolder.getString("passwordKey", "");
if(dataReturned.equals(stringData)) {
String newData = newPassword.getText().toString().trim();
SharedPreferences.Editor editor = myFolder.edit();
editor.putString("passwordKey", newData);
editor.commit();
dataReturned = myFolder.getString("passwordKey", "couldn't load data");
Toast.makeText(context, "Password changed", Toast.LENGTH_SHORT).show();
currentPassword.setText("");
newPassword.setText("");
}
else {
Toast.makeText(context, "Incorrect Password", Toast.LENGTH_LONG).show();
currentPassword.setText("");
newPassword.setText("");
}
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel();
}
});
alert.show();
;
}
if(pref == notification) {
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.device_access_secure)
.setOngoing(true)
.setContentTitle("Obstruct")
.setContentText("Start Stealth Mode");
Intent resultIntent = new Intent();
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(0, mBuilder.build());
}
return true;
}
一切似乎都是正确的,但事实并非如此,这让我感到困惑。有什么想法吗?
【问题讨论】:
标签: android android-preferences preference