AlertDialog.Builder .setAdapter的使用

构建播放列表选项对话框
本文详细介绍了如何在Android应用中构建一个播放列表选项对话框,包括设置标题、适配器和点击监听器。


     AlertDialog.Builder songOptsDBuilder = new AlertDialog.Builder(Rock.this);
     songOptsDBuilder.setTitle(“Name”);
     songOptsDBuilder.setAdapter(
       new ArrayAdapter<String>(
         getApplicationContext(),
         android.R.layout.select_dialog_item,
         android.R.id.text1,
         getResources().getStringArray(R.array.song_options)),
       new PlaylistOptionClickListener(
         songId,
         mSongOptionSelectedHandler));
     songOptsDBuilder.setOnCancelListener(
       new OnCancelListener() {
     @Override
     public void onCancel(DialogInterface dialog) {
      // Reverse the animation
      mRockOnRenderer.reverseClickAnimation();
     }
       });
     songOptsDBuilder.show();

要将 `AlertDialog` 弹框替换为底部弹框,可以使用 `BottomSheetDialog` 来实现。`BottomSheetDialog` 是 Android 提供的一种可以从屏幕底部弹出的对话框。以下是修改后的代码示例: ```java import com.google.android.material.bottomsheet.BottomSheetDialog; import android.content.Context; import android.widget.ArrayAdapter; import android.widget.Toast; import java.util.List; import android.view.View; import android.widget.ListView; private void showSelectionDialog(List<String> courierList) { // 创建 BottomSheetDialog BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(getActivity()); // 创建一个 ListView 用于显示运输商列表 ListView listView = new ListView(getActivity()); ArrayAdapter<String> adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, courierList); listView.setAdapter(adapter); // 设置 ListView 的点击事件 listView.setOnItemClickListener((parent, view, position, id) -> { String selectedCourier = courierList.get(position); Toast.makeText(getActivity(), "" + selectedCourier, Toast.LENGTH_SHORT).show(); bottomSheetDialog.dismiss(); }); // 创建一个取消按钮 View cancelButton = getLayoutInflater().inflate(android.R.layout.simple_button, null); cancelButton.setOnClickListener(v -> bottomSheetDialog.dismiss()); // 将 ListView 和取消按钮添加到一个布局中 android.widget.LinearLayout layout = new android.widget.LinearLayout(getActivity()); layout.setOrientation(android.widget.LinearLayout.VERTICAL); layout.addView(listView); layout.addView(cancelButton); // 将布局设置给 BottomSheetDialog bottomSheetDialog.setContentView(layout); // 显示 BottomSheetDialog bottomSheetDialog.show(); } ``` ### 代码解释 1. **创建 `BottomSheetDialog`**:使用 `BottomSheetDialog` 类来创建一个底部弹框。 2. **创建 `ListView`**:用于显示运输商列表,并设置适配器。 3. **设置 `ListView` 的点击事件**:当用户选择一个运输商时,显示一个 `Toast` 消息并关闭底部弹框。 4. **创建取消按钮**:当用户点击取消按钮时,关闭底部弹框。 5. **将 `ListView` 和取消按钮添加到布局中**:将 `ListView` 和取消按钮添加到一个 `LinearLayout` 中。 6. **设置布局给 `BottomSheetDialog`**:将 `LinearLayout` 设置给 `BottomSheetDialog`。 7. **显示 `BottomSheetDialog`**:调用 `show()` 方法显示底部弹框。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值