短いクリックと長いクリックをリッスンするダイアログが必要です(ユーザーがアイテムに指を置いたままにして、DialogInterface を閉じずにオーディオ ファイルのプレビューを再生してそれに反応するとき)ユーザー)。
DialogInterface クラスの API を確認したところ、OnClickListener しか提供していないことがわかりました。DialogInterface オブジェクトに両方をリッスンさせることは可能ですか?
コードは次のとおりです。
public class SetMetronomeDialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Pick a tempo");
builder.setItems(R.array.tempoArray, new DialogInterface.OnClickListener() {
// this code works fine since it's from the Android Developer site :)
public void onClick(DialogInterface dialog, int which) {
// The 'which' argument contains the index position
// of the selected item
Toast.makeText(getActivity(), "" + which, Toast.LENGTH_SHORT).show();
}
// this is my 'dream method', doesn't work of course...
public void onLongClick(DialogInterface dialog, int which) {
Toast.makeText(getActivity(), "" + which, Toast.LENGTH_SHORT).show();
}
});
return builder.create();
}
}