作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作一个配置页面,允许用户选择是否要记住他的密码。但是我不知道在哪里进行共享首选项的“设置”和“获取”以及将 Intent 发送到哪里,因为另一个类不是 Activity 。
这是我的 fragment :
public class configFragment extends android.support.v4.app.Fragment {
CheckBox check;
public static Boolean checkBoxValue;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.config_layout, container, false);
TextView titre=(TextView) rootView.findViewById(R.id.configu);
check=(CheckBox) rootView.findViewById(R.id.checkbox_meat);
TextView avertissement=(TextView) rootView.findViewById(R.id.avertissement);
titre.setText("Configuration");
avertissement.setText("Attention ! : Le code n'est pas chiffré!");
check();
return rootView;
}
public boolean check(){
if(check.isChecked()){
Intent intent=new Intent(getActivity(),HomeActivity.class);
intent.putExtra("value",true);
return true;
}else{
return false;
}
}
}
这是另一个类中的方法:
public void askForPassword() {
final EditText et = new EditText(mHomeViewModel.getFragment().getActivity());
et.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
SharedPreferences loginPreferences = mHomeViewModel.getFragment().getActivity().getSharedPreferences(SPF_NAME,
Context.MODE_PRIVATE);
et.setText(loginPreferences.getString("password", ""));
new AlertDialog.Builder(mHomeViewModel.getFragment().getActivity())
.setTitle("Saisissez votre code Le Coffre")
.setView(et)
.setPositiveButton("Valider", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
/* if(value==true){
SharedPreferences settings = mHomeViewModel.getFragment().getActivity().getSharedPreferences(PREFRENCES_NAME, 0);
settings.edit().putString("pwd", et.getText().toString()).commit();
// BsApplication.sPassword = password;
}else {
BsApplication.sPassword = et.getText().toString();
//}
}
initBsAndCloudAndBrowse();
}*/
BsApplication.sPassword = et.getText().toString();
initBsAndCloudAndBrowse();}
})
.setNegativeButton("Première connexion?", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
final EditText et1 = new EditText(mHomeViewModel.getFragment().getActivity());
et1.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
new AlertDialog.Builder(mHomeViewModel.getFragment().getActivity())
.setView(et1)
.setTitle("Première connexion")
.setMessage("Choisissez un code différent de celui du cloud Orange "+"\n"+"Attention nous ne connaitrons pas votre code et n’offrons pas encore la possibilité de le changer ")
.setPositiveButton("Créer", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
BsApplication.sPassword = et1.getText().toString();
initBsAndCloudAndBrowse();
}
})
.show();
}
})
.show();
}
谢谢你的帮助,我真的很感激
最佳答案
由于您正在创建一个使用键/值打开 HomeActivity 的 Intent,因此您应该能够像这样在 onCreate 上检索该值:
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = savedInstanceState != null ? savedInstanceState : getArguments();
boolean foo;
if (extras != null) {
foo = extras.get("value");
}
}
但是,由于您要求将此值存储在 SharedPreference 中,因此此链接可能会更有帮助 https://developer.android.com/training/basics/data-storage/shared-preferences.html
关于android - 将复选框的值从 fragment 获取到另一个不是 Activity 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44588286/
我是一名优秀的程序员,十分优秀!