0

別のxmlファイルから特定のビューを膨らませる方法。出来ますか?このビューのIDを設定しようとすると、ResourceNotFoundExceptionが発生します。どういうわけかファイル名を設定する必要がありますか?

LayoutInflater inflater = LayoutInflater.from(this);
FrameLayout ingredients_frame = (FrameLayout)inflater.inflate(R.id.ingredients_frame, null);

R.id.ingredients_frameは別のxmlファイルにあります。

例外:

 android.content.res.Resources$NotFoundException: Resource ID #0x7f060032 type #0x12 is not valid

成分_フレーム_レイアウト.xml:

<FrameLayout 
           xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/ingredients_frame"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/expandable_second_layer_selector" >

            <TextView
                android:id="@+id/text"
                android:layout_width="fill_parent"
                android:layout_height="match_parent"
                android:layout_gravity="center"
                android:background="@android:color/white"
                android:singleLine="true"
                android:text="......................................................................................................................................................................"
                android:textColor="@color/dark_orange"
                android:textSize="18dip"/>

            <TextView
                android:id="@+id/ingredient_name"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="left"
                android:background="@android:color/white"
                android:textStyle="bold"
                android:text="@string/friends_total"
                android:textColor="@color/dark_orange"
                android:textSize="18dip" />

            <TextView
                android:id="@+id/ingredient_data"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="right"
                android:background="@android:color/white"
                android:textStyle="bold"
                android:textColor="@color/dark_orange"
                android:textSize="18dip" />
    </FrameLayout>          
4

3 に答える 3

3

このようにしてみてください-

LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View vi = inflater.inflate(R.layout.ingredients_frame_layout, null);

また、Viewクラスオブジェクトを使用すると、レイアウト内にある他のコンポーネントを識別できます。例:レイアウトにtextViewが1つある場合example

TextView tv = (TextView)vi.findViewById(R.id.textView1);
tv.setText("Hello world");

これに基づいて、あなたのFrameLayoutようなものを特定してください

FrameLayout ingredients_frame = (FrameLayout)vi.findViewById(R.id.ingredients_frame);
于 2012-07-23T10:04:27.277 に答える
1

これを使って

LayoutInflater mInflater = LayoutInflater.from(context);
View convertView = mInflater.inflate(R.layout.custom_list, null);

フレームレイアウトを取得する代わりに上記の方法を実行し、このようにテキストビューを取得します

TextView txtTitle = (TextView) convertView.findViewById(R.id.text);

TextView txtTitle2 = (TextView) convertView.findViewById(R.id.ingredient_name);

txtTitle.setText(yourtext);
于 2012-07-23T10:02:58.837 に答える
1
LayoutInflater inflater = LayoutInflater.from(this);
FrameLayout ingredients_frame = (FrameLayout)inflater.inflate(YOUR_LAYOUT, null);

inflateメソッドの最初のパラメーターはLAYOUTですが、IDではありません。幸運を!

于 2012-07-23T10:09:13.287 に答える