অ্যান্ড্রয়েড: একাধিক নির্বাচনের বিকল্প রয়েছে এমন একটি পপআপ তৈরি করুন


109

আমি কীভাবে পপআপ বা একটি ডায়ালগ তৈরি করতে পারি তা বেছে নেওয়ার চেষ্টা করার চেষ্টা করেছি যার মধ্যে থেকে 4 টি বিকল্প রয়েছে।

আমি এই ছবিটি অ্যান্ড্রয়েড বিকাশকারী সাইটে দেখছি:

এখানে চিত্র বর্ণনা লিখুন

ডানদিকের মতো কিছু কীভাবে কোড আপ করতে কেউ জানেন? আমার পাঠ্যের পাশে আমার কোনও আইকন প্রয়োজন নেই, আমাকে কেবল 4 টি বিকল্প থেকে নির্বাচন করতে সক্ষম হতে হবে।

উত্তর:


289

আপনি Stringসেখানে যে বিকল্পগুলি দেখাতে চান তা দিয়ে একটি অ্যারে তৈরি করতে পারেন এবং তারপরে AlertDialog.Builderপদ্ধতিটি দিয়ে অ্যারেটি পাস করতে পারেন setItems(CharSequence[], DialogInterface.OnClickListener)

একটি উদাহরণ:

String[] colors = {"red", "green", "blue", "black"};

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a color");
builder.setItems(colors, new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        // the user clicked on colors[which]
    }
});
builder.show();

আউটপুট (Android 4.0.3 এ):

আউটপুট

(পটভূমি মানচিত্র অন্তর্ভুক্ত নেই।;))


5
.create()এখানে অপ্রয়োজনীয়, .show()নির্মাতার তৈরি ডায়ালগটি ফিরিয়ে দেবে এবং তারপরে এটিও প্রদর্শন করবে
ট্রোনিকজমবি

2
এই জন্য আপনাকে অনেক ধন্যবাদ। আমি কোনও সাধারণ টেক্সট মেনুর জন্য একটি এক্সএমএল লেআউট বাস্তবায়ন করতে চাইনি এবং এই পোস্টটি জুড়ে হোঁচট না পারা পর্যন্ত এটি করার সহজ উপায় খুঁজে পাচ্ছি না।
ক্রিস্টোফার রাথজেব 24'14

কীভাবে আমরা এই পাঠ্যটির মাঝখানে রাখতে পারি এবং আমরা এই পাঠ্যের অভ্যন্তরে রঙটি সেট করতে পারি? যেমন লাল লাল রঙ দেখায় ?? সবুজ রঙে সবুজ পাঠ্য প্রদর্শন?
আহমদ আরসলান

দ্রষ্টব্য: এই উদাহরণটি একাধিক নয়, পোস্ট থেকে আবার শিরোনাম পড়ুন :)

হ্যালো, আপনি কী কীভাবে নির্দিষ্ট আইটেম নির্বাচনের জন্য ক্রিয়াগুলি সেট করতে পারি তা আপনি প্রদর্শন করতে পারেন? উদাহরণ: আমি ব্যবহারকারীকে সেই আইটেমগুলির মধ্যে একটিতে ক্লিক করে অ্যাপ্লিকেশন ভাষা পরিবর্তন করতে চাই (সম্ভবত যদি বিবৃতিটি ব্যবহার করে থাকে)।
আরদা Çebi

6

পপ আপগুলি ছাড়া আর কিছুই নয়। সুতরাং AlertDialogআপনাকে কেবল তৈরি করতে হবে AlertDialog, তারপরে আপনার কাঙ্ক্ষিত দৃষ্টিভঙ্গিটি LayoutInflaterস্ফীত করে এবং setView()পদ্ধতিটির সাহায্যে স্ফীত দর্শনটি সেট করুনAlertDialog


4

এটা চেষ্টা কর :

public void onClick(View v) {

    final String[] fonts = {
        "Small", "Medium", "Large", "Huge"
    };

    AlertDialog.Builder builder = new AlertDialog.Builder(TopicDetails.this);
    builder.setTitle("Select a text size");
    builder.setItems(fonts, new DialogInterface.OnClickListener() {@
        Override
        public void onClick(DialogInterface dialog, int which) {
            if ("Small".equals(fonts[which])) {
                Toast.makeText(TopicDetails.this, "you nailed it", Toast.LENGTH_SHORT).show();
            } else if ("Medium".equals(fonts[which])) {
                Toast.makeText(TopicDetails.this, "you cracked it", Toast.LENGTH_SHORT).show();
            } else if ("Large".equals(fonts[which])) {
                Toast.makeText(TopicDetails.this, "you hacked it", Toast.LENGTH_SHORT).show();
            } else if ("Huge".equals(fonts[which])) {
                Toast.makeText(TopicDetails.this, "you digged it", Toast.LENGTH_SHORT).show();
            }
            // the user clicked on colors[which]

        }
    });
    builder.show();
}

আমি মনে করি স্যুইচ (হরফ [যা]) এটি করছে।

3

বিকল্প বিকল্প

এটি আমার প্রথম পোস্ট তাই আমি আমার কোডটি ভাগ করে নিতে আগ্রহী! এটি আমার পক্ষে কাজ করেছে:

এই দুটি লাইন অনক্রিট ইভেন্টের উপরে রাখুন

final String[] Options = {"Red", "Blue"};
AlertDialog.Builder window;

এই কোডটি এমন ইভেন্টে রাখুন যা এটি ট্রিগার করবে

window = new AlertDialog.Builder(this);
window.setTitle("Pick a color");
window.setItems(Options, new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        if(which == 0){
           //first option clicked, do this...

        }else if(which == 1){
           //second option clicked, do this...

        }else{
        //theres an error in what was selected
            Toast.makeText(getApplicationContext(), "Hmmm I messed up. I detected that you clicked on : " + which + "?", Toast.LENGTH_LONG).show();
        }
    }
});

window.show();

1
হ্যাঁ অনেক উন্নতি। একটি স্যুইচ স্টেটমেন্ট আরও উন্নত করে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.