কীভাবে ক্রিয়াকলাপের সামগ্রী দেখুন?


279

কোনও কার্যকলাপের কন্টেন্টভিউ আছে কিনা তা জানতে আমার কী পদ্ধতিটি কল করা উচিত (একবার সেটআপ কনটেন্টভিউ () পদ্ধতিটি বলা হয়েছে)?

উত্তর:


523
this.getWindow().getDecorView().findViewById(android.R.id.content)

অথবা

this.findViewById(android.R.id.content)

অথবা

this.findViewById(android.R.id.content).getRootView()

4
বা getWindow().findViewById(android.R.id.content):)
— অ্যালেক্স লকউড

1
প্যারেন্ট ভিউ আনতে যতদূর সম্ভব এটি কাজ করে ... তবে আমি যদি এটি চেষ্টা করি indফাইন্ড ভিউবিআইডি (অ্যান্ড্রয়েড.আর.আইডি.কন্টেন্ট) .সেটব্যাকগ্রাউন্ডড্রেইবল (ডি); এটি অসন্তুষ্ট কাজ .. আপনি দয়া করে পরামর্শ দিতে পারেন .. অগ্রিম ধন্যবাদ
— রাজেশ ওয়াধওয়া

3
আপনি যদি ব্যবহার করে এক্সএমএল থেকে কোনও লেআউট ইনস্টল করেন setContentView(R.layout.my_view)তবে এটি সেই লেআউটের পিতামাতাকে ফিরিয়ে দেয় ।
— জে লাইস্কে

হ্যালো @ জার্নেস্টের মতো আমার একটি সাজানোর প্রশ্ন রয়েছে যদি আমার লেআউটে আমার ট্যাব বারের দুটি ট্যাবের উপরে একটি চিত্র থাকে। এবং নীচে একটি স্যাটেলাইটমেনু, মেনু আইটেমগুলিতে ঝাপসা করতে চান খুলুন।
— দেবেন্দ্র সিং

1
Android.Resource.Id- এর জন্য সামগ্রী বিদ্যমান নেই।
— জাস্টিন

23

আপনি যদি আপনার লেআউটে কোনও আইডি রাখেন তবে আপনি দৃশ্যটি ফিরে পেতে পারেন।

<RelativeLayout
    android:id="@+id/my_relative_layout_id"

এবং এটি ফাইন্ড ভিউআইআইডি থেকে কল করুন ...


ইনস্টলড লেআউটের মূল পেতে এটিই সবচেয়ে শক্তিশালী উপায়।
— জে লাইস্কে

3
আপনি কি পাস findViewById?
— ট্রান্স

1
@ ট্রান্স কন্টেন্ট দেখুন ভিউ = সন্ধান ভিউবিআইআইডি (আর।
— জাস্টিন লিউ

11

কেমন

View view = Activity.getCurrentFocus();

কিভাবে এটি আরও থাম্ব আপ না? দুর্দান্ত কাজ!
— aeskreis

1
@ এস্ক্রেইস কারণ আমার ক্ষেত্রে এটি বাতিল হয়currentFocus?.let { ... }
— user924


5

ডেকে আনা onContentChanged()হওয়ার setContentView()পরে বরখাস্ত হওয়া অন্যদের মধ্যে যা রয়েছে তা আপনি ওভাররাইড করতে পারেন ।


আর্নেস্টের উত্তরটি আপনাকে স্ক্রোলযোগ্য দৃশ্য অন্তর্ভুক্ত থাকলে বর্তমান
— ফোকাসযুক্ত

2

আপনি যদি ব্যবহার করছেন Kotlin

    this.findViewById<View>(android.R.id.content)
                         .rootView
                         .setBackgroundColor(ContextCompat.getColor(this, R.color.black))

1

কোনও "আইস কনটেন্টভিউসেট" পদ্ধতি নেই। আপনি কিছু ডামি অনুরোধ উইন্ডো-ফিচার কলটি সেটকন্টেন্টভিউয়ের আগে চেষ্টা / ক্যাপ ব্লকটিতে রাখতে পারেন:

চেষ্টা করুন
  requestWindowFeature (Window.FEATURE_CONTEXT_MENU);
  setContentView (...)
} ধরা (অ্যান্ড্রয়েডআরআরটাইমেক্সেপশন ই) {
  // স্মেথ করুন বা কিছুই করবেন না
}

যদি সামগ্রী ভিউ ইতিমধ্যে সেট করা থাকে, অনুরোধ উইন্ডোফিজারটি একটি ব্যতিক্রম ছুঁড়ে দেবে।


-3

আমি যে সেরা বিকল্পটি খুঁজে পেয়েছি এবং কম অনুপ্রবেশযোগ্য তা হল আপনার এক্সএমএলটিতে পছন্দ মতো একটি ট্যাগ প্যারাম সেট করা

ফোন এক্সএমএল লেআউট

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:tag="phone"/>

ট্যাবলেট এক্সএমএল বিন্যাস

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:tag="tablet">

    ...

</RelativeLayout>

এবং তারপরে আপনার ক্রিয়াকলাপ শ্রেণিতে এটি কল করুন:

View viewPager = findViewById(R.id.pager);
Log.d(getClass().getSimpleName(), String.valueOf(viewPager.getTag()));

আশা করি এটি আপনার পক্ষে কাজ করে।


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