質問

I別のビューからビューを取得するためのいずれかの方法があるかどうかお願いしたいと思います。

私の場合は、次のとおりです。 私は、カスタムImageViewのコールMyImageViewを持っています。 そして、私のレイアウトは、次のとおりです。

FrameLayout:
  MyImageView 
  LiearLayout:
      LiearLayout: 
          TextView 
      LiearLayout:
          TextView

私はMyImageViewでいくつかのコードを持っていると私は編集するのLinearLayout下のTextViewのテキストをしたいと思います。

のTextViewを選択するためのMyImageViewでの私のコードは次のとおりです。

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

しかしTextViewには常にnullであると私は私が好まというテキストを設定することはできません。

より、もしIコードこの:

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);

それは、同じ画面上にある場合、それは常に存在します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top