AlertDialog.Builder怎樣實(shí)現(xiàn)單選功能

小樊
81
2024-10-12 21:13:24

要實(shí)現(xiàn)AlertDialog的單選功能,你可以使用setSingleChoiceItems()方法。這個(gè)方法允許你設(shè)置一個(gè)包含單選選項(xiàng)的列表,并為每個(gè)選項(xiàng)設(shè)置一個(gè)監(jiān)聽(tīng)器,以便在用戶(hù)選擇某個(gè)選項(xiàng)時(shí)執(zhí)行相應(yīng)的操作。下面是一個(gè)簡(jiǎn)單的示例:

import androidx.appcompat.app.AlertDialog;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showRadioButtonDialog();
            }
        });
    }

    private void showRadioButtonDialog() {
        String[] options = {"Option 1", "Option 2", "Option 3"};

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Select an option");
        builder.setSingleChoiceItems(options, -1, new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String selectedOption = parent.getItemAtPosition(position).toString();
                Toast.makeText(MainActivity.this, "Selected: " + selectedOption, Toast.LENGTH_SHORT).show();
            }
        });

        builder.setPositiveButton("OK", null);
        builder.show();
    }
}

在這個(gè)示例中,我們創(chuàng)建了一個(gè)包含三個(gè)單選選項(xiàng)的AlertDialog。setSingleChoiceItems()方法的第一個(gè)參數(shù)是一個(gè)字符串?dāng)?shù)組,表示選項(xiàng)列表;第二個(gè)參數(shù)是默認(rèn)選中的選項(xiàng)(-1表示沒(méi)有默認(rèn)選中);第三個(gè)參數(shù)是一個(gè)OnItemClickListener,當(dāng)用戶(hù)選擇一個(gè)選項(xiàng)時(shí),它會(huì)執(zhí)行相應(yīng)的操作。在這個(gè)例子中,我們只是彈出一個(gè)Toast消息,顯示用戶(hù)選擇的選項(xiàng)。

0