15

PreferenceActivityで特定の設定を表示するために使用されるViewインスタンスを取得したいので、そのプロパティを変更できます。次に例を示します。

public class SettingsActivity extends PreferenceActivity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        addPreferencesFromResource(R.xml.preference);
        Preference pref = findPreference("key");
        pref.getView().setVisibility(View.GONE);
            //not necessarily setVisibility, i hope you get my point
    }
}

私はこのメソッドだけを見つけました: getView(View convertView、ViewGroup parent)。しかし、私には混乱しているようです。自分の好みのビューを取得したい場合は、パラメーターとしてviewとviewGroupを提供する必要がありますか?

誰かがこのメソッドの使用方法を説明したり、PreferenceインスタンスからViewを取得するための別のメソッドを教えてくれませんか。

PS:可能であれば、Preferenceクラスを拡張したくないのですが、必要に応じて気にしません

4

3 に答える 3

6

目的の設定のビューを取得するには、これを使用できます。

@Override
public void onWindowFocusChanged(boolean hasFocus)
{
    super.onWindowFocusChanged(hasFocus);
    Preference preference=findPreference(“preferenceKey”);
    View preferenceView=getListView().getChildAt(preference.getOrder());
    //Do your stuff
}

注:onCreateをスローするため、メソッドでこれを行うことはできませんNullPointerException

于 2015-10-18T14:16:56.413 に答える
4

PreferenceActivity はListActivityクラスを継承します。ListActivity には、getListView()設定を表示する ListView を返すメソッドが呼び出されます。

編集:これは、フォーマットされた私のコメントのコードです:

getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
       // ... put listener code here 
});
于 2011-12-08T13:58:15.893 に答える
1

設定のビューを取得する方法はわかりませんが、画面からビューを削除したい場合 (可視性を View.gone に設定)、次を使用できます。

getPreferenceScreen().removePreference(thePreference)

于 2012-06-13T12:54:45.697 に答える