gpt4 book ai didi

android - 将复选框的值从 fragment 获取到另一个不是 Activity 的类

转载 作者:行者123 更新时间:2023-11-29 02:40:23 26 4
gpt4 key购买 nike

我正在尝试制作一个配置页面,允许用户选择是否要记住他的密码。但是我不知道在哪里进行共享首选项的“设置”和“获取”以及将 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com