开发者

How to get TextView reference from a custom ImageView?

I would like to ask if there is any methods to get a View from another View.

My case is that: I have a custom ImageView call MyImageView. and my layout is that:

FrameLayout:
  MyImageView 
  LiearLayout:
      LiearLayout: 
          TextView 
      LiearLayout:
          TextView

I have some code in MyImageView and I would like to edit the text in TextView under the LinearLayout.

my code in MyImageView for select the TextView is:

TextView textView开发者_高级运维 = (TextView) findViewById(id.TextView01);

However textView is always null and I can't set the text that I prefered.

More, if I code this:

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

Eclipse will give me a error and said can;t resolve the id.

So Is there any methods to edit TextView from a ImageView?


First of all... that's a horrible idea (I would be freaked out if I were you). And it's big signal that you have to rethink how to do your layout.

Anyway, using the getParent method could work:

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

It's not working the way you are doing it, since the TextViews are not inside your custom view.


I think you can always call getRootView() and from there you can search for a view by Id. As long as the ids are unique within the current view hierarchy you should be able to grab the textView no matter where it is in the hierarchy.

So similar to the other answer

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

if it's on the same screen, it will be there always.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜