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


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.