2017-06-16 11 views
2

私は、パスワードを記憶させたいのかどうかをユーザが選択できるようにする設定ページを作ろうとしています。 しかし、他のクラスはアクティビティではないので、共有設定の "セット"と "取得"を行う場所とインテントを送信する場所はわかりません。フラグメントからチェックボックスの値をアクティビティではない別のクラスに取得する

これは私の断片である:

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(); 

} 

はあなたの助けをありがとう、私は以来

+0

になりますあなたが値をしたいクラスのコンストラクタを作成し、 – sumit

+0

その感謝を使用して値を送ることができますが、私は本当にクラスのコンストラクタを変更することはできません、それは他のものにあまり影響を与えるでしょう –

+0

どのようにコンストラクタを作成することが他のものに影響を与えることができますか? – sumit

答えて

0

それを本当に感謝しますキー/値でHomeActivityを開くためのインテントを作成しています。その値を取得できるはずです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

+0

ありがとう、私はこのソリューションをテストします –

関連する問題