0

我有我的主页 xml,如果用户的数据库中没有任何东西,我想将一个按钮加载到该页面中。

我的主页 xml 是:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >


    <TextView
        android:id="@+id/beerTitle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:textSize="20sp"
        android:textStyle = "bold"
        android:padding="5dip"
        >
    </TextView>

    <ImageView android:id="@+id/image"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_margin="10dip"/>



    <TableLayout  

    android:id="@+id/tableLayout1"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:layout_gravity="center_horizontal"
    android:shrinkColumns="*"  
    android:stretchColumns="*"> 

    <TableRow
        android:id="@+id/tableStatTitles"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        android:padding="5dip" >

        <TextView
            android:id="@+id/abvTitle"
            android:text="ABV"
            android:gravity="center" 
            android:textStyle = "bold"
            android:textSize="20sp"
            android:layout_weight="1"

            ></TextView>

        <TextView
            android:id="@+id/IBUTitle"
            android:text="IBU"
            android:gravity="center" 
            android:textStyle = "bold"
            android:textSize="20sp"
            android:layout_weight="1"

            ></TextView>

        <TextView
            android:id="@+id/glassTitle"
            android:text="Glass"
            android:gravity="center" 
            android:textStyle = "bold"
            android:textSize="20sp"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            ></TextView>


        </TableRow>

    <TableRow
        android:id="@+id/tableStat"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        android:padding="5dip" >

        <TextView
            android:id="@+id/abv"
            android:text=""
            android:gravity="center" 
            android:textSize="15sp"
            android:layout_width="wrap_content"
            ></TextView>

        <TextView
            android:id="@+id/IBU"
            android:text=""
            android:gravity="center" 
            android:textSize="15sp"
            android:layout_width="wrap_content"
            ></TextView>

        <TextView
            android:id="@+id/glass"
            android:text=""
            android:gravity="center" 
            android:textSize="15sp"
            android:layout_width="wrap_content"
            ></TextView>


        </TableRow>

    </TableLayout> 







    <Button
        android:id="@+id/buttonBrewery"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dip"
        android:text=""
        android:onClick="viewBrewery"
        />



    <Button
        android:id="@+id/buttonStyle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dip"
        android:text=""
        android:onClick="viewStyle"

        />



    <TextView
        android:id="@+id/beerDescriptionTitle"
        android:textStyle = "bold"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:textSize="20sp"
        android:text="Description:"
        android:padding="5dip"
        ></TextView>
    <TextView
        android:id="@+id/beerDescription"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:textSize="15sp"
        android:padding="5dip"

        ></TextView>

    <LinearLayout 
    android:id="@+id/addBeerLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

        </LinearLayout>

</LinearLayout>
</ScrollView>

我要添加的 xml 对接是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Add Beer" />

</LinearLayout>

我正在尝试将一个 xml 文件膨胀到主要的文件中:

//inflate with add beer button
                Inflater inflater;
                LinearLayout addButton = (LinearLayout)findViewById(R.id.addBeerLayout);
                addButton.addView(inflater.inflate(R.layout.addbeerbutton_layout, null));

我的 findviewbyid 在 Eclipse 中给出了这个错误:

    The method findViewById(int) is undefined for the type CheckBeerJSON
and my inflate give this error in eclipse:
The method inflate(byte[]) in the type Inflater is not applicable for the arguments (int, null)
4

3 回答 3

1

我这里没有电脑,所以我不能发布一个例子,但也许一个提示就足够了。

如果我正确理解您想要实现的目标,viewstub 可能是一个不错的选择。

http://developer.android.com/reference/android/view/ViewStub.html

于 2013-06-23T19:26:32.353 回答
1

形成您的评论CheckBeerJSON是 Aynstask。所以你需要黑带建议的上下文。将活动上下文传递给异步任务的构造函数。

从你的活动课

     new CheckBeerJSON(ActivityName.this).execute(params);

然后在asynctask的构造函数中。

     Context mContext;
     public CheckBeerJSON(Context context)
     {
       mContext = context;
     } 

要增加您需要的布局LayoutInflater

   LayoutInflater mInflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

   LinearLayout addButton = (LinearLayout)((Activity) mContext).findViewById(R.id.addBeerLayout);
   addButton.addView(mInflater.inflate(R.layout.addbeerbutton_layout, null));  

还要确保不要在doInbackground.

于 2013-06-23T20:13:50.143 回答
0

我在我的应用程序中执行此操作的方式如下。

LayoutInflater mLayoutInflater = (LayoutInflater) 
    getSystemService(LAYOUT_INFLATER_SERVICE);

//Layout defined in XML
LinearLayout mLinearLayout = (LinearLayout)
    findViewById(R.id.layout);

//View to add to XML layout
View mView = mLayoutInflater.inflate(R.layout.view,
    mLinearLayout, false);

mLinearLayout.addView(mView);
于 2013-06-23T19:32:39.870 回答