1

これはばかげた質問かもしれません。私はAndroidにかなり慣れていません。

とにかく、私は ViewStub を使用しています。これは、さまざまな状況に応じてさまざまなレイアウトに置き換えられます。setLayoutResource() メソッドを呼び出してから、setVisibility を VISIBLE に呼び出したときに、正しいレイアウトを表示することに関しては問題なく動作しています。ただし、表示されているこのビューのコンテンツの一部を動的にする必要があります (つまり、静的なレイアウトを表示するだけでなく、コードを介して設定する必要があります)。

これは可能ですか?setLayoutResource() メソッドは静的なレイアウト リソース ID のみを受け取りますが、レイアウト XML ファイルに TextViews に、使用する準備ができているコードからの非静的テキストを含めることができるようにする必要があります。可能であれば、これにどのようにアプローチする必要がありますか?Java クラスを持ち、XML を拡張してそれにアタッチしてフィールドを更新するという概念は理解していますが、設定する必要がある単なるレイアウト リソース int であるため、手元のコードとどのように関連するかわかりません。 ViewStub の setLayoutResource() メソッド用。

必要に応じて既存のコードを投稿できますが、投稿が乱雑になる以上のことを行うかどうかはわかりません。参考までに - 私が持っているのは、いくつかの TextView を含む単純なレイアウト XML ファイルと、カスタム ダイアログの一部である ViewStub を含むメインの XML だけです。ユーザーは、Dialog をインスタンス化してレイアウトを設定できます。これにより、ViewStub のレイアウトが設定されます。これは、動的コンテンツを使用する必要があるレイアウトです。

アドバイスをいただければ幸いです。ありがとう!

4

1 に答える 1

2

これを達成するのはそれほど難しくなかったことがわかりました。ViewStubを膨らませて実際のTextViewのコピーを取得した後、TextViewレイアウトのIDを使用するだけで、テキストを任意の種類の動的/カスタムテキストに簡単に設定できました。

また、.VISIBLE呼び出しを介してそれを示すコードをコメントアウトする必要があり、代わりに次のようにします(.inflate()行のコードはVISIBLEに設定するのと同じことを実行します)。

 View inflatedView = dialog.myStubView.inflate();
 TextView myTextView = (TextView) inflatedView.findViewById(R.id.my_text_view);
 myTextView.setText("Dynamic/Custom Text");
于 2012-11-02T19:05:41.650 に答える