2017-02-01 5 views
0

プリファレンス・フラグメント・レイアウトにボタンを追加する必要があります。私は、Preferencesレイアウトでボタンを正常に取得できますが、クリックされたイベントはキャプチャできません。プリファレンス・フラグメントのボタン

その他のすべての設定は、onSharedPreferenceChangedコールバックで取得されますが、ボタンのクリックは取得されません。

ボタンにコールバックを追加する、またはそのコールバックをonSharedPreferenceChangedコールバックに戻すには、どのような方法が最適ですか?

私はStackoverflowで見つけることができるほとんどすべての例を試しましたが、大部分はpreferenceActivityを念頭に置いて設計されており、フラグメントではありません。

私が試した1つの解決策はコールバックイベントを発生させましたが、そのコールバックがホストアクティビティにあったときだけでした!

この点に関する具体的なヘルプは高く評価されています。これはあなたのフラグメントで動作するはず

答えて

0

:応答のための

<Button 
     android:id="@+id/prefBtn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
+0

ありがとう:

Button prefBtn = ((Button) view.findViewById(R.id.prefBtn)); prefBtn.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ // Your code here } }); 

EDIT
また、あなたのフラグメントのレイアウトでは、このようなものが必要。私はこれを試したと確信しています;作品は、R.id.prefBtnが存在しないので、フラグメントの設定レイアウトはレイアウトではなく 'xml'フォルダにあり、レイアウトではないので、作成する存在はありません。この作品を断片の中で確認できますか? – user3263740

+0

はい、コードは自分のフラグメントから直接得られます。フラグメントのxmlレイアウトファイルにボタンにIDを与える必要があります。 –

+0

こんにちはマリオ、 上記を追加すると、アプリがクラッシュします。ボタンはnullとして返され、あなたが提案したボタンXMlを追加すると、フラグメントは勝っています。 – user3263740

関連する問題