如何从一个自定义的ImageView TextView的参考?
题
我想问一下,如果有任何的方法来获取从另一个视图中查看。
我的情况是: 我有一个自定义的ImageView呼叫MyImageView。 和我的布局是:
FrameLayout:
MyImageView
LiearLayout:
LiearLayout:
TextView
LiearLayout:
TextView
我在MyImageView一些代码,我想编辑的LinearLayout下的TextView的文本。
我在MyImageView代码选择TextView的是:
TextView textView = (TextView) findViewById(id.TextView01);
然而的TextView总是空,我不能设置文本我优先。
更多,如果我代码这样的:
TextView textView = (TextView) findViewById(R.id.TextView01);
Eclipse将给我一个错误和所述罐;吨决心的ID
那么,有没有从ImageView的到编辑TextView的任何方法?
解决方案
首先...这是一个可怕的想法(我会被吓坏了,如果我是你)。而且它的大信号,你必须重新考虑如何做你的布局。
总之,使用 getParent
方法可以工作:
// in your MyImageView
FrameLayout parent = (FrameLayout)getParent();
TextView textView = (TextView) parent.findViewById(R.id.TextView01);
它不工作,你正在做的方式,因为TextViews
不是您的自定义视图中。
其他提示
我觉得你可以随时拨打getRootView(),并从那里你可以搜索ID的视图。只要ID是当前视图层次结构中是唯一的,你应该能够抢到的TextView不管它是在层次中。
所以类似于其它应答
TextView textView = (TextView) getRootView().findViewById(R.id.textview_01);
,如果它是在同一屏幕上,它会在那里总是
不隶属于 StackOverflow