كيفية الحصول على مرجع TextView من صورة مخصصة؟
سؤال
أود أن أسأل عما إذا كانت هناك أي طرق للحصول على عرض من وجهة نظر أخرى.
حالتي هي أن: لدي صورة مخصصة اتصل على 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);
إذا كان على نفس الشاشة ، فسيكون هناك دائمًا.