0

ビューにメソッドをアタッチするファイルactivity.javaがありますsetContentView(R.layout.x);。添付はファイルに含める必要があります。どうすれば含めることができますか。y.xmlLinear Layoutonclick()onclick()activity.javay.xml

私はこれを試しました、

1.     layout = (LinearLayout) findViewById(R.layout.y);
       eView = (EditText)layout. findViewById(R.id.editview);

2.      eView = (EditText)findViewById(R.id.editview); 

しかし、どちらも my を与えnull pointer exceptionます。editText

アップデート

final LayoutInflater lyInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        showLinearLayout = (LinearLayout) lyInflater.inflate(R.layout.y, null);
         showView = (EditView) showLinearLayout.findViewById(R.id.edittext);
4

5 に答える 5

0

LayoutInflaterは、レイアウト XML ファイルを対応するビュー オブジェクトにインスタンス化するために使用されます。つまり、XML ファイルを入力として受け取り、そこからビュー オブジェクトを構築します。

あなたのシナリオでは、を使用する必要がありますLayoutInflater。この記事を読んでください。

于 2013-01-10T03:53:15.773 に答える
0

質問を正しく理解している場合、あなたのアクティビティは を使用しておりx.xml、 で定義されている別のレイアウトも含めたいと考えていますy.xml

ドキュメント で説明されているように<merge>、または<include>タグを使用してこれを行うことができます。

または、 ViewStubを使用して、レイアウト内の特定の場所にある別のレイアウトを条件付きで拡張することもできます。たとえば、 にViewStubタグを含めて、ビュー階層の同じ場所でインx.xmlフレートすることができます。y.xml次に、必要なクリック リスナーをアタッチできます ( を使用findViewById())。

于 2013-01-10T04:08:05.207 に答える
0

RAM。yxml ファイルを xml ファイルに含める場合は、次のx手順に従います。

ボタンのクリック時のメソッドなどに含めたいと想定していますLinear Layout。次に、をxmlファイルに追加して追加すると、最初は線形レイアウトを表示できません。Activityonclick()Linear Layoutxandroid:visibility="gone"

 <LinearLayout
        android:id="@+id/history_value_body"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:visibility="gone" >    <<<<<<<<<<<   HERE

 ----------------------------
 -----------------------------
 </LinearLayout>

さて、Javaクラスから、必要に応じて、あなたの場合はonclickメソッドに見えるようにします。お気に入り...

linear.setVisibility(View.VISIBLE);   // linear is the object of your Linearlayout

何か問題があれば、私に尋ねてください。

幸運を。

于 2013-01-10T04:03:42.317 に答える
0

以下に示すように、インフレを使用できます。

final LayoutInflater lyInflater = (LayoutInflater) mContext
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout yLayout = (LinearLayout) lyInflater .inflate(
                R.layout.y, null);
eView = (EditText)yLayout.findViewById(R.id.editview);

したがって、もう例外は発生しません。それが役に立てば幸い。

于 2013-01-10T03:41:02.200 に答える
0

ViewGroup のaddViewメソッドを使用できます。

addView(layout, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
于 2013-01-11T06:10:27.820 に答える