要实现在Android中从自定义Cast Dialog选择的设备投射,可以按照以下步骤进行:
public class CastDialogFragment extends DialogFragment {
private List mDeviceList;
private CastDeviceSelectedListener mListener;
public interface CastDeviceSelectedListener {
void onDeviceSelected(CastDevice device);
}
public void setDeviceList(List deviceList) {
mDeviceList = deviceList;
}
public void setListener(CastDeviceSelectedListener listener) {
mListener = listener;
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Select a device")
.setItems(getDeviceNames(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (mListener != null) {
mListener.onDeviceSelected(mDeviceList.get(which));
}
}
});
return builder.create();
}
private CharSequence[] getDeviceNames() {
CharSequence[] names = new CharSequence[mDeviceList.size()];
for (int i = 0; i < mDeviceList.size(); i++) {
names[i] = mDeviceList.get(i).getName();
}
return names;
}
}
public class MainActivity extends AppCompatActivity implements CastDialogFragment.CastDeviceSelectedListener {
private List mDeviceList; // 设备列表
// ...
private void showCastDialog() {
CastDialogFragment fragment = new CastDialogFragment();
fragment.setDeviceList(mDeviceList);
fragment.setListener(this);
fragment.show(getSupportFragmentManager(), "cast_dialog");
}
@Override
public void onDeviceSelected(CastDevice device) {
// 在这里处理设备选择事件
// 投射到选定的设备
// ...
}
}
以上就是一个简单的实现从自定义Cast Dialog选择的设备投射的方法。请根据你的具体需求和使用的库进行相应的调整和实现。