খণ্ডে ভিউবিআইআইডি


1035

আমি একটি খণ্ডে একটি চিত্রদর্শন তৈরি করার চেষ্টা করছি যা খণ্ডের জন্য এক্সএমএলে তৈরি করা চিত্র-ভিউ উপাদানটি উল্লেখ করবে। তবে, findViewByIdপদ্ধতিটি কেবল তখনই কাজ করে যদি আমি কোনও ক্রিয়াকলাপ শ্রেণি প্রসারিত করি। এর যে কোনও উপায়ে আমি এটিকে খণ্ডগুলিতেও ব্যবহার করতে পারি?

public class TestClass extends Fragment {
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        ImageView imageView = (ImageView)findViewById(R.id.my_image);
        return inflater.inflate(R.layout.testclassfragment, container, false);
    }
}

findViewByIdপদ্ধতি যা বলে যে, পদ্ধতি undefined হয় এটা একটি ত্রুটি রয়েছে।


অ্যান্ড্রয়েডের জন্য বাটারনিফ ভিউবাইন্ডিং লাইব্রেরি ব্যবহার করুন। আপনার বিকাশ দ্রুততর করার জন্য এটি কীভাবে কাজ করে, অ্যান্ড্রয়েড অ্যাপ্লিকেশন বিকাশে কীভাবে সংহত করতে এবং ব্যবহার করতে হয় তাও প্রদর্শন করুন।
Shomu

'কিছু' সময় কেটে গেছে তবে আপনি এখনও কোনও উত্তর গ্রহণ করেন নি। আপনি যে উত্তরটি সবচেয়ে বেশি সহায়তা করেছেন সেটিকে উত্তর হিসাবে চিহ্নিত করা যেতে পারে?
ডেভিড3103

ডেটা বাইন্ডিং অরং ভিউ বাইন্ডিং এর পরিবর্তে ম্যানুয়াল
ফাইন্ডবাইআইডি

উত্তর:


1433

ব্যবহারের getView () বা বাস্তবায়ন থেকে দেখুন প্যারামিটার onViewCreatedপদ্ধতি। এটি খণ্ডটির জন্য মূল দৃষ্টিভঙ্গি প্রদান করে ( onCreateView()পদ্ধতি অনুসারে প্রত্যাবর্তিত ) । এটি দিয়ে আপনি কল করতে পারেন findViewById()

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    ImageView imageView = (ImageView) getView().findViewById(R.id.foo);
    // or  (ImageView) view.findViewById(R.id.foo); 

হিসাবে getView()কাজ পরই onCreateView(), আপনি এটা ভিতরে ব্যবহার করতে পারবেন না onCreate()বা onCreateView()পদ্ধতি টুকরা করুন।


323
দ্রষ্টব্য: এটি শুধুমাত্র অনক্রিটভিউ () এর পরে কাজ করে। সুতরাং, আপনি এটি অনক্রিট ()
দিমিত্রি জায়েতসেভ

7
সুতরাং যদি অনক্রিট সঠিক জায়গা না হয় তবে আমি এটি কার্যকর করতে কোন ফাংশনটি ওভাররাইড করতে পারি?
নিকো এডি

16
এটি ImageViewস্ফীত লেআউট থেকে আসছে যদি এটি সাহায্য করে না - বিশদ জন্য আমার উত্তর দেখুন। অন্যথায়, অনক্রিটভিউ এটি করার জন্য সঠিক জায়গা হ'ল @ এন-অ্যাক্সেসডিভ
ম্যাটজেনকো

25
অনভিউ তৈরি পদ্ধতিটি করার জন্য সেরা স্থান
অ্যাডভান্টেজ

37
ডকুমেন্টেশনটিতে বলা হয়েছে যে onActivityCreated()আপনার মতামতের রেফারেন্সগুলি সন্ধান এবং সংরক্ষণের জন্য প্রস্তাবিত স্থান। আপনি আবশ্যক তাদের ফিরিয়ে সেটিং দ্বারা এই সঞ্চিত রেফারেন্স পরিষ্কার nullমধ্যে onDestroyView()অথবা আপনি ফুটা করা হবে Activity
মনস্টিওর

618

আপনাকে ফ্রেগমেন্টের ভিউ ফুলে তুলতে findViewById()হবে এবং Viewএটির ফিরে আসাটি কল করতে হবে।

public View onCreateView(LayoutInflater inflater, 
                         ViewGroup container, 
                         Bundle savedInstanceState) {
     View view = inflater.inflate(R.layout.testclassfragment, container, false);
     ImageView imageView = (ImageView) view.findViewById(R.id.my_image);
     return view;
}

4
আপনি যখন ভি.ফাইন্ডভিউবিআইআইডি (আর.আইডি.সোমিড) করেন, অবশ্যই এটি স্ফীতিযুক্ত দর্শনীয় সমস্ত উইজেটের জন্য কাজ করবে। যদি তিনি যে চিত্রটি দেখুনটি স্ফীত করার চেষ্টা করছেন তা স্ফীত দৃশ্যটির বাইরে নয় কী?
রুনাক

18
তারপরে চিত্রটি দেখার জন্য "শ্রেণীর মালিকানাধীন" এবং চিত্রটি স্ফীত করে দেওয়া ক্লাসটির এটিতে সর্বজনীন অ্যাক্সেস সরবরাহ করা দরকার। যদিও এটি খুব খারাপ অনুশীলন। খণ্ডগুলিতে কেবলমাত্র তাদের লেআউটে উপস্থিত ইউআই উপাদানগুলিতে অ্যাক্সেস থাকা উচিত।
লেফেলম্যানিয়া

1
দেখে মনে হচ্ছে আপনার কোডে কিছু ভুল আছে (পটভূমির থ্রেড থেকে ইউআই আপডেট করা হচ্ছে), আমার নয়।
লেফেলম্যানিয়া

1
ধন্যবাদ, এটি দরকারী ছিল। সম্পর্কিত নয় এমন মন্তব্য হিসাবে: আপনার কোডটিতে জাভা নামকরণের কনভেনশনগুলিকে আটকে রাখার চেষ্টা করুন। "ভি" জাভাতে কোনও ভেরিয়েবল নামের মতো লাগে না।
altmano

3
এটি সঠিক উত্তর হওয়া উচিত। গৃহীত একজন আপনাকে ছেড়ে চলে যায় NullPointerException
মাচাডো

132

Fragmentশ্রেণীর অভ্যন্তরে আপনি অনভিউ তৈরি () ওভাররাইড পদ্ধতি পাবেন যেখানে আপনি সর্বদা আপনার দৃষ্টিভঙ্গি শুরু করতে হবে যেমন এই পদ্ধতির মতো আপনি ভিউ অবজেক্ট পাবেন যার সাহায্যে আপনি নিজের মতামতগুলি খুঁজে পেতে পারেন:

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    view.findViewById(R.id.yourId).setOnClickListener(this);

    // or
    getActivity().findViewById(R.id.yourId).setOnClickListener(this);
}

সর্বদা মনে রাখবেন খণ্ডের ক্ষেত্রে সেই onViewCreated()পদ্ধতিটি স্বয়ংক্রিয়ভাবে কল করা হয় না যদি আপনি শূন্য বা পদ্ধতি super.onCreateView()থেকে ফিরে আসছেন onCreateView()। ডিফল্ট ListFragmentহিসাবে ListFragmentরিটার্ন হিসাবে ক্ষেত্রে এটি ডিফল্টরূপে ডাকা হবে FrameLayout

দ্রষ্টব্য: আপনি getView()একবার onCreateView()সফলভাবে কার্যকর করা হয়েছে ব্যবহার করে ক্লাসের যে কোনও জায়গায় খণ্ডের দৃশ্য পেতে পারেন । অর্থাত

getView().findViewById("your view id");

4
আমি আশ্চর্য হয়েছি যে প্রচুর লোকেরা এই প্রতিক্রিয়াটিকে সমর্থন করে না - এটি শ্রোতাদের টুকরো টুকরো টুকরো করার সঠিক উপায় ... সম্ভবত এটি এপিআইতে একটি নতুন বিকাশ ছিল।
সনি 22

ব্যবহার করা viewপ্রেরণ onViewCreatedএখনও কারণ NullPointerExceptionকিন্তু ব্যবহার getActivity()জরিমানা। কোন ধারণা কেন?
dVaffication

@dVaffection এটি হতে পারে আপনি টুকরো টুকরো করার লাইফসাইकल পদ্ধতিতে অনক্রিটভিউ () তে একটি নন দর্শন ফিরিয়ে দিচ্ছেন না। এখন getActivity- এর ক্ষেত্রে আপনি খণ্ড খণ্ডিত প্রধান ভিউয়ের পরিবর্তে আপনার ক্রিয়াকলাপ থেকে দর্শন পেয়েছেন আপনি কোন আইডি দিয়ে যাচ্ছেন তার উপর নির্ভর করে। দয়া করে পরীক্ষা করে দেখুন আপনি অনক্রিটভিউ থেকে কোনও নাল ভিউ ফিরে আসছেন নাকি? তাহলে আমাকে জানাবেন।
অঙ্কুর চৌধুরী চৌধুরী

@ অঙ্কুরচৌধুরী আমি onCreateViewপদ্ধতি থেকে দৃষ্টিভঙ্গি ফিরিয়ে আনছি । আমি সবেমাত্র ডিবাগ করেছি এবং এটি দেখা যাচ্ছে যে একটি লেআউট আছে (আমার ক্ষেত্রে FrameLayout)। এটি যখন বলা হচ্ছে যখন আমি এটির ফিরে আসে এমন কোনও উপাদান খুঁজতে চেষ্টা করি null। কেন এমন হচ্ছে?
ডিভ্যাফিকেশন

@ ডিভ্যাফিকেশন আপনি দয়া করে আপনার টুকরা টুকরা এবং সংশ্লিষ্ট লেআউট ভাগ করতে পারেন।
অঙ্কুর চৌধুরী চৌধুরী

66

আমি বুঝতে পারি এটি একটি পুরানো প্রশ্ন, তবে প্রচলিত উত্তরটি পছন্দসই হওয়ার জন্য কিছু ছেড়ে দেয়।

কী দরকার তা প্রশ্নটি পরিষ্কার নয় imageView- আমরা কী এটিকে দৃশ্য হিসাবে ফিরিয়ে দিচ্ছি, বা কেবল পরে কোনও রেফারেন্স সংরক্ষণ করছি?

যে কোনও উপায়ে, যদি ImageViewস্ফীত লেআউটটি থেকে আগত হয় তবে এটি করার সঠিক উপায়টি হ'ল:

public class TestClass extends Fragment {
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.testclassfragment, container, false);
        ImageView imageView = (ImageView)v.findViewById(R.id.my_image);
        return v;
    }
}

1
কীভাবে আপনি তালিকার ফ্রেম থেকে চিত্রটি দেখুন আপডেট করবেন? এর জন্য কি ফ্র্যাগমেন্টম্যানেজারের প্রয়োজন? অন্য কথায়, কীভাবে আপনি পৃথক শ্রেণীর অনলাইনলিস্টিম্লিক ক্লিক থেকে বিশদ বিবরণে চিত্রভিউ আপডেট করতে পারবেন?
আজ

1
আপনি প্রয়োজনমতো চিত্রের ভিউয়ের কোনও রেফারেন্স সংরক্ষণ করতে পারেন বা কোথাও হস্তান্তরিত বা ফ্রেগমেন্ট.টেট ভিউ () find একটি লিস্টফ্রেগমেন্টে, ধারণা করা হয় যে চিত্রটি কোনও তালিকার আইটেমটিতে রয়েছে, আপনি সাধারণত আপনার অ্যাডাপ্টারের গেটভিউ পদ্ধতিতে তালিকার ভিউ আইটেমের সেটট্যাগ / গেটট্যাগ পদ্ধতিগুলি সহ একটি রেফারেন্স ধারক তৈরি করতে পারেন - এটি কীভাবে করবেন তার অনেক উদাহরণ রয়েছে।
ম্যাটজেনকো

47

প্রথমে খণ্ডের ভিউটি পান এবং তারপরে আপনার এই চিত্রটি দেখুন from

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.testclassfragment, container, false);
    ImageView imageView = (ImageView) view.findViewById(R.id.my_image);
    return view;
}

সুতরাং, অনক্রিট পদ্ধতি কি কোনও খণ্ডে কার্যকর?
সুনাজে

অনক্রিটভিউ ফ্রেগমেন্টের সাথে সম্পর্কিত ভিউ হায়ারার্কি তৈরি করে এবং রিটার্ন করে .আরক্রিটকে খণ্ডটির প্রাথমিক তৈরি করতে বলা হয়। প্রকৃতপক্ষে, আপনি এই পদ্ধতিগুলিতে কী লিখবেন তার উপর নির্ভর করে।
xevincent

ঠিক আছে, তবে আমি কীভাবে অনক্রিটে পরিবর্তনশীল ঘোষণা করতে পারি? কারণ ভিউটি অনক্রিটভিউ পদ্ধতির অভ্যন্তরে রয়েছে।
সুনাজে

@ সুনাজে আপনি কী কখনও অনক্রিট পদ্ধতি থেকে এটি করবেন তা খুঁজে পেয়েছেন?
স্টু স্টার্লিং

1
আমি রাজী. এই উত্তরটি সমাধান হিসাবে চিহ্নিত করা উচিত।
বরিস কারলফ

25

আপনি এটি onActivityCreatedপদ্ধতিতেও করতে পারেন।

public void onActivityCreated(Bundle savedInstanceState) { 
      super.onActivityCreated(savedInstanceState);
}

তারা এখানে যা করতে পছন্দ করে: http://developer.android.com/references/android/app/Fraament.html (এপিআই স্তরের ২৮-এ অবনমিত)

getView().findViewById(R.id.foo);

এবং

getActivity().findViewById(R.id.foo);

সম্ভব



17

আপনি ভিউক্রিটেড () -কে ওভাররাইড করতে পারেন যা সমস্ত দর্শন স্ফীত হওয়ার পরে ডাকা হয়। আপনার খণ্ডের সদস্য Viewভেরিয়েবলগুলি পূরণ করার জন্য এটি সঠিক জায়গা । এখানে একটি উদাহরণ:

class GalleryFragment extends Fragment {
    private Gallery gallery;

    (...)

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        gallery = (Gallery) view.findViewById(R.id.gallery);
        gallery.setAdapter(adapter);
        super.onViewCreated(view, savedInstanceState);
    }
}

17

Fragmentশ্রেণীর অভ্যন্তরে আমরা onViewCreated()ওভাররাইড পদ্ধতিটি পাই যেখানে আমাদের সর্বদা আমাদের দৃষ্টিভঙ্গি শুরু করা উচিত কারণ এই পদ্ধতিতে আমরা viewবস্তু পাই । এই অবজেক্টটি ব্যবহার করে আমরা নীচের মতো আমাদের মতামতগুলি খুঁজে পেতে পারি:

class MyFragment extends Fragment {
    private ImageView imageView;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.my_fragment_layout, container, false);
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        //initialize your view here for use view.findViewById("your view id")
        imageView = (ImageView) view.findViewById(R.id.my_image);
    }
}

2
চমৎকার কাজ ভাল! অনেক অনেক ধন্যবাদ
বিবেক

15

পদ্ধতিটি ভিউ () অনক্রিট এবং অনুরূপ পদ্ধতির বাইরের অংশগুলিতে কাজ করবে না।

আপনার দুটি উপায় আছে, অনকারেটে ফাংশনে ভিউটি পাস করুন (ভিউটি তৈরি হওয়ার সময় আপনি কেবলমাত্র আপনার ফাংশনগুলি চালাতে পারবেন) বা ভেরিয়েবল হিসাবে ভিউ সেট করুন:

private View rootView;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    rootView = inflater.inflate(R.layout.fragment_contatos, container, false);
}

public void doSomething () {
    ImageView thumbnail = (ImageView) rootView.findViewById(R.id.someId);
}

11

1) প্রথম খণ্ডের স্ফীত লেআউট এরপরে আপনি ফাইন্ডভিউআইআইডি ব্যবহার করতে পারেন।

View view = inflater.inflate(R.layout.testclassfragment, container, false);
             ImageView imageView = (ImageView) view.findViewById(R.id.my_image);
             return view;

10
EditText name = (EditText) getView().findViewById(R.id.editText1);
EditText add = (EditText) getView().findViewById(R.id.editText2);  


9

findViewById()ভিউ কল করার সাথে একমত

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View V = inflater.inflate(R.layout.testclassfragment, container, false);
    ImageView imageView = (ImageView) V.findViewById(R.id.my_image);

    return V;
}

9

বিঃদ্রঃ :

এপিআই লেভেল 26 থেকে আপনার ফাইন্ডভিউবিআইডির ফলাফলটি নির্দিষ্ট করে দেওয়ার দরকার নেই কারণ এটি তার রিটার্নের ধরণের জন্য অনুমিত ব্যবহার করে।

সুতরাং এখন আপনি সহজভাবে করতে পারেন,

public View onCreateView(LayoutInflater inflater, 
                         ViewGroup container, 
                         Bundle savedInstanceState) {
     View view = inflater.inflate(R.layout.testclassfragment, container, false);
     ImageView imageView =  view.findViewById(R.id.my_image); //without casting the return type
     return view;
}

1
Ingালাই জিনিস ছাড়াই আমাকে সাহায্য করেছে।
শৌর্য্যপাল

8

11 স্তরের এপিআইয়ের ডকুমেন্টেশন অনুসারে

পিছনে স্ট্যাক রেফারেন্স, http://developer.android.com/references/android/app/Fraament.html

শর্ট কোড

/**
 * The Fragment's UI is just a simple text view showing its
 * instance number.
 */
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.hello_world, container, false);
    View tv = v.findViewById(R.id.text);
    ((TextView)tv).setText("Fragment #" + mNum);
    tv.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.gallery_thumb));
    return v;
}

8

ব্যবহার getView()করে খণ্ডের দর্শনটি ফেরত দেয়, তারপরে আপনি findViewById()খণ্ড দৃশ্যে যে কোনও ভিউ উপাদানকে অ্যাক্সেস করতে কল করতে পারেন।


3
দৃশ্য কার্যকলাপ নয়
স্টিভ এম

7

এটি চেষ্টা করুন এটি আমার জন্য কাজ করে

public class TestClass extends Fragment {
    private ImageView imageView;

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.testclassfragment, container, false);
        findViews(view);
        return view;
    }

    private void findViews(View view) {
        imageView = (ImageView) view.findViewById(R.id.my_image);
    }
}

হ্যাঁ, এই কোডটি এখানে ঠিক আছে। অন্যগুলিতে আপনার সম্পাদনাগুলি নয়।
ওয়ানডে ক্রিকেটার

@ ক্রিকেট_০০7 ঠিক আছে আপনি আমাকে কোন দেখতে পেলেন?
বিপিন ভারতী

আমি দুঃখিত আমি আপনার ইংরেজি বেশ বুঝতে পারি না, তবে এখন সবকিছু ঠিক আছে। তোমাকে দেখানোর মতো আমার কিছু নেই।
ওয়ানডে ক্রিকেটার

5

এটি কার্যকর করার সর্বোত্তম উপায় নিম্নরূপ:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

rootView = inflater.inflate(R.layout.testclassfragment, container, false);
        ImageView imageView = (ImageView) rootView.findViewById(R.id.my_image);
        return rootView
}

এইভাবে, এক্সটিএমএল লেআউটে সংজ্ঞায়িত প্রতিটি নিয়ন্ত্রণের জন্য রুটভিউ ব্যবহার করা যেতে পারে এবং কোডটি এইভাবে অনেক ক্লিনার।

আশাকরি এটা সাহায্য করবে :)


আমি ভেবেছিলাম এটি গ্রহণযোগ্য হতে পারে, তবে এটি কার্যকর হয়নি
মাইক ব্রায়ান

5

1) আপনার লেআউট ফাইলটি ঘোষণা করুন।

public View onCreateView(LayoutInflater inflater,ViewGroup container, 
                                 Bundle savedInstanceState) {
    return inflate(R.layout.myfragment, container, false);
}

2) তারপরে, আপনার ভিউয়ের আইডি পান

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    TextView nameView = (TextView) view.findViewById(R.id.textview1);
}

4

গ্রেড কঙ্কাল প্লাগইন ব্যবহার করুন , এটি স্বয়ংক্রিয়ভাবে আপনার লেআউটের রেফারেন্স সহ দর্শন ধারক শ্রেণিগুলি তৈরি করবে।

public class TestClass extends Fragment {
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        MyLayout myLayout = new MyLayout(inflater, container, false);
        myLayout.myImage.setImageResource(R.drawable.myImage);
        return myLayout.view;
    }
}

এখন ধরে নিই যে ImageViewআপনার my_layout.xmlফাইলটিতে আপনাকে একটি ঘোষিত হয়েছে , এটি স্বয়ংক্রিয়ভাবে আপনার জন্য আমার লেআউট ক্লাস তৈরি করবে।


4

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

View v = inflater.inflate(R.layout.testclassfragment, container, false);
ImageView img = (ImageView) v.findViewById(R.id.my_image);

return v;

4

চেষ্টা

private View myFragmentView;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{
myFragmentView = inflater.inflate(R.layout.myLayoutId, container, false);
myView = myFragmentView.findViewById(R.id.myIdTag)
return myFragmentView;
}

মাঠের কোনও কারণ নেই। আপনি সর্বদা getView()পরে কল করতে পারেন
ওয়ানডে ক্রিকেটার

3

আপনি ক্রিয়াকলাপ অবজেক্টটিরfindViewById() সাথে কল করতে পারেন আপনি নিজের পদ্ধতির অভ্যন্তরে আপনার খণ্ডটির ভিতরে।public void onAttach(Activity activity)

ক্রিয়াকলাপটি একটি ভেরিয়েবলের মধ্যে উদাহরণস্বরূপ সংরক্ষণ করুন:

ইন অসম্পূর্ণ অংশ বর্গ : private Activity mainActivity; ইন onAttach()পদ্ধতি: this.mainActivity=activity;

অবশেষে বৈকল্পিকের মাধ্যমে প্রতিটি অনুসন্ধানভিউবাইআইডি কার্যকর করুন: mainActivity.findViewById(R.id.TextView);


3

অন ​​ভিউক্রিটেড নামে আরও একটি পদ্ধতি রয়েছে।

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    ImageView imageView = (ImageView) view.findViewById(R.id.imageview1);
}

2

অনক্রিটভিউ পদ্ধতির অভ্যন্তরে

1) প্রথমে আপনাকে লেআউটটি সজ্জিত করতে হবে / ভিউ যেমন আপনি যুক্ত করতে চান। LinearLayout

LinearLayout ll = inflater.inflate(R.layout.testclassfragment, container, false);

2) তারপরে আপনি আপনার চিত্র ভিউ আইডিটি বিন্যাস থেকে খুঁজে পাবেন

ImageView imageView = (ImageView)ll.findViewById(R.id.my_image);

3) স্ফীত লেআউট ফিরে

return ll;

এটি লেফেলম্যানিয়ার উত্তরের অনুরূপ।
অবধি 43

2

আপনাকে ভিউ ফুলে উঠতে হবে

public class TestClass extends Fragment {

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.testclassfragment, container, false);
    ImageView imageView = (ImageView)v.findViewById(R.id.my_image);
    return v
}}

2

খণ্ডগুলিতে আমাদের সেই উইন্ডোটির একটি ভিউ দরকার যাতে আমরা এই খণ্ডটির একটি অনক্রিটভিউ তৈরি করি।

তারপরে ভিউটি পান এবং সেই ভিউ উপাদানগুলির প্রতিটি ভিউ আইডি অ্যাক্সেস করতে এটি ব্যবহার করুন ..

  class Demo extends Fragment
    {
        @Override
        public View onCreateView(final LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState)
        {
            View view =inflater.inflate(R.layout.demo_fragment, container,false);
            ImageView imageview=(ImageView)view.findViewById(R.id.imageview1);

            return view;
        }
    }

1) এটি অন্যান্য উত্তরে কী যুক্ত করে? 2) আপনি দু'বার উত্তর দিয়েছেন বলে মনে হচ্ছে
ওয়ানডে ক্রিকেটার

2

লেআউট inflater এখানে ছবিতে আসে। লেআউট ইনফ্লেটার এমন একটি শ্রেণি যা জাভা কোডে এক্সএমএল ভিউগুলি ব্যবহার করতে সক্ষম করে। সুতরাং আপনি নিম্নলিখিত কোডের সাথে ভেরিয়েবল ভিতে মূল এক্সএমএল ভিউ স্ফীত করতে পারেন। এবং তারপরে ভি ব্যবহার করে, আপনি মূল ভিটির সন্তানের দর্শনগুলি খুঁজে পেতে পারেন v।

public class TestClass extends Fragment {
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.testclassfragment, container, false);
    ImageView imageView = (ImageView)v.findViewById(R.id.my_image);
    return v;
    }
}

1

এই জাতীয় জিনিস ব্যবহারের সবচেয়ে সহজ উপায় হ'ল বাটারনিফ ব্যবহার করা এটির মাধ্যমে আপনি নীচের বর্ণিত হিসাবে @ অনিক্লিক () দ্বারা অনেকগুলি অনক্লিক্লাইক্লেস্টার যুক্ত করতে পারেন:

public class TestClass extends Fragment {
    @BindView(R.id.my_image) ImageView imageView;
    @OnClick(R.id.my_image)
    public void my_image_click(){
        yourMethod();
    }
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.testclassfragment, container, false);
        ButterKnife.bind(getActivity,view);
        return view;
    }
}

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