বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

বর্তমান লেআউট নির্ধারণ করা

যেহেতু প্রতিটা লেআউটের বাস্তবায়ন একটু ভিন্ন হতে পারে, প্রথমেই আপনাকে সম্ভাব্য যে কাজটা করতে হতে পারে সেটা হচ্ছে কোন লেআউট বর্তমানে ইউজার দেখছে তা নির্ধারণ করা। উদাহরণস্বরূপ, আপনি হয়তো জানতে চাইতে পারেন যে ইউজার "single pane" বা "dual pane" কোন মোড ব্যবহার করছে। আপনি এটা অনুসন্ধানের মাধ্যমে করতে পারেন যদি একটি প্রদত্ত ভিউ বিদ্যমান থাকে এবং দৃশ্যমান হয়:

public class NewsReaderActivity extends FragmentActivity {
    boolean mIsDualPane;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_layout);

        View articleView = findViewById(R.id.article);
        mIsDualPane = articleView != null &&
                        articleView.getVisibility() == View.VISIBLE;
    }
}

উল্লেখ্য যে এই কোড অনুসন্ধান করে যে "article" পেন আছে কিনা, যা একটি নির্দিষ্ট লেআউট অনুসন্ধানের জন্য হার্ড-কোডিং এর চেয়ে অনেক বেশী নমনীয়।

বিভিন্ন উপাদানের উপস্থিতিতে কীভাবে আপনি অভিযোজন করতে পারেন তার আরেকটি উদাহরণ হচ্ছে এগুলোতে কোন অপারেশন শুরু করার পূর্বে কোথায় এগুলো পাওয়া যাবে তা চেক করা। উদাহরণস্বরূপ, নিউজ রিডার নমুনা অ্যাপে, একটি বাটন আছে যা একটি মেনু ওপেন করে, কিন্তু ওই বাটন তখনই দেখা আবির্ভূত হয় যখন অ্যান্ড্রয়েড ৩.০ সংস্করনের চেয়ে পূরাতন সংস্করণে রান করে (কারন এর কার্যকারিতাকে ActionBar কর্তৃক API লেভেল ১১+ এ অধিগৃহিত হয়)। সুতরাং এই বাটনের জন্য ইভেন্ট লিসেনার যোগ করতে,আপনি যেটা করতে পারেন:

Button catButton = (Button) findViewById(R.id.categorybutton);
OnClickListener listener = /* create your listener here */;
if (catButton != null) {
    catButton.setOnClickListener(listener);
}