If I do not quite understand the question correctly, the answer is probably simpler than you think. The source code for ListPreferece teaches that this is a little more than a wrapper around AlertDialog that displays various options in a ListView . Now AlertDialog allows you to get a handle to the ListView that it wraps, which is probably all you need.
In one of the comments, you indicated that at this stage all that interests you is the detection of a long press on any item in the list. So instead of answering this by adding a GestureDetector , I just use OnItemLongClickListener .
public class ListPreferenceActivity extends PreferenceActivity implements OnPreferenceClickListener { private ListPreference mListPreference; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.list_prefs); mListPreference = (ListPreference) findPreference("pref_list"); mListPreference.setOnPreferenceClickListener(this); } @Override public boolean onPreferenceClick(Preference preference) { AlertDialog dialog = (AlertDialog) mListPreference.getDialog(); dialog.getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id) { Toast.makeText(getApplicationContext(), "Long click on index " + position + ": " + parent.getItemAtPosition(position).toString(), Toast.LENGTH_SHORT).show(); return false; } }); return false; } }
Result (which is a toast in a long click):

With a reference to ListView you can also attach OnTouchListener , GestureDetector , etc. Before that you can go from here.
Mh.
source share