كيفية الحصول على مرجع TextView من صورة مخصصة؟

StackOverflow https://stackoverflow.com/questions/4009513

  •  25-09-2019
  •  | 
  •  

سؤال

أود أن أسأل عما إذا كانت هناك أي طرق للحصول على عرض من وجهة نظر أخرى.

حالتي هي أن: لدي صورة مخصصة اتصل على MyImageView. وتخطيطي هو:

FrameLayout:
  MyImageView 
  LiearLayout:
      LiearLayout: 
          TextView 
      LiearLayout:
          TextView

لدي بعض التعليمات البرمجية في MyImageView وأود تحرير النص في TextView ضمن LinearLayout.

الكود الخاص بي في MyImageView لتحديد TextView هو:

TextView textView = (TextView) findViewById(id.TextView01);

ومع ذلك ، فإن TextView خالية دائمًا ولا يمكنني تعيين النص الذي أفضل.

أكثر ، إذا قمت بترميز هذا:

TextView textView = (TextView) findViewById(R.id.TextView01);

سوف يعطيني Eclipse خطأ وقال لا يمكن حل المعرف.

فهل هناك أي طرق لتحرير TextView من ImageView؟

هل كانت مفيدة؟

المحلول

بادئ ذي بدء ... هذه فكرة مروعة (سأكون مخيفًا لو كنت أنت). وهي إشارة كبيرة أنه يتعين عليك إعادة التفكير في كيفية القيام بتخطيطك.

على أي حال ، باستخدام getParent يمكن أن تعمل الطريقة:

// in your MyImageView
FrameLayout parent = (FrameLayout)getParent();
TextView textView = (TextView) parent.findViewById(R.id.TextView01);

إنه لا يعمل بالطريقة التي تقوم بها ، لأن TextViews ليست داخل عرضك المخصص.

نصائح أخرى

أعتقد أنه يمكنك دائمًا استدعاء GetRootView () ومن هناك يمكنك البحث عن عرض حسب المعرف. طالما أن المعرفات فريدة من نوعها في التسلسل الهرمي للعرض الحالي ، يجب أن تكون قادرًا على الاستيلاء على TextView بغض النظر عن مكان وجوده في التسلسل الهرمي.

على غرار الإجابة الأخرى

TextView textView = (TextView) getRootView().findViewById(R.id.textview_01);

إذا كان على نفس الشاشة ، فسيكون هناك دائمًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top