在OnCreateView(Fragment类)中以编程方式创建按钮

时间:2015-03-18 11:10:08

标签: java android xml button android-fragments

我正在尝试实现在我的片段类中以android编程方式创建一个按钮。但经过几个小时的搜索,我找不到合适的解决方案。 这是我的xml代码:

<LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:background="#ffffff"
                android:orientation="vertical" >

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="#ffffff"
                    android:orientation="horizontal" >

                    <ImageButton
                        android:id="@+id/imageButton1"
                        android:layout_width="wrap_content"
                        android:layout_height="77dp"
                        android:layout_weight="1.70"
                        android:background="#FFCDD2"
                        android:src="@drawable/airtel_round_s" />

                    <Button
                        android:id="@+id/airtelamt"
                        android:layout_width="188dp"
                        android:layout_height="77dp"
                        android:layout_weight="0.45"
                        android:background="#FFCDD2"
                        android:text="Button" />
                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="#ffffff"
                    android:orientation="horizontal" >

                    <ImageButton
                        android:id="@+id/iciciBtn"
                        android:layout_width="wrap_content"
                        android:layout_height="77dp"
                        android:layout_weight="1.70"
                        android:background="#FFE0B2"
                        android:src="@drawable/icici_logo_s" />

                    <Button
                        android:id="@+id/iciciamt"
                        android:layout_width="188dp"
                        android:layout_height="77dp"
                        android:layout_weight="0.45"
                        android:background="#FFE0B2"
                        android:text="Button" />
                </LinearLayout>
                </LinearLayout>

有人可以指导我吗?

以下是该应用的屏幕截图: enter image description here

3 个答案:

答案 0 :(得分:0)

您是否尝试以实用方式重复以下布局?

               <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="#ffffff"
                    android:orientation="horizontal" >

                    <ImageButton
                        android:id="@+id/imageButton1"
                        android:layout_width="wrap_content"
                        android:layout_height="77dp"
                        android:layout_weight="1.70"
                        android:background="#FFCDD2"
                        android:src="@drawable/airtel_round_s" />

                    <Button
                        android:id="@+id/airtelamt"
                        android:layout_width="188dp"
                        android:layout_height="77dp"
                        android:layout_weight="0.45"
                        android:background="#FFCDD2"
                        android:text="Button" />
                </LinearLayout>

然后使用ListView

1)像这样修改你的主要xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <ListView
        android:id="@+id/listView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    </ListView>

</LinearLayout>

2)创建一个新的xml文件并粘贴

                   <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:background="#ffffff"
                        android:orientation="horizontal" >

                        <ImageButton
                            android:id="@+id/imageButton1"
                            android:layout_width="wrap_content"
                            android:layout_height="77dp"
                            android:layout_weight="1.70"
                            android:background="#FFCDD2"
                            android:src="@drawable/airtel_round_s" />

                        <Button
                            android:id="@+id/airtelamt"
                            android:layout_width="188dp"
                            android:layout_height="77dp"
                            android:layout_weight="0.45"
                            android:background="#FFCDD2"
                            android:text="Button" />
                    </LinearLayout>

3)创建Adapter以填充ListView

答案 1 :(得分:0)

您将从中获得有关您的问题的帮助:

ArrayList<String> mList = new ArrayList<String>();

mList.add("Button 0");
mList.add("Button 1");
mList.add("Button 2");
// this has added 3 buttons

ListAdapter mAdapter = new ListAdaper(getApplicationContext, mList);

if( /* your condition */ ) {
    mList.add("Button "+i);
}

答案 2 :(得分:0)

为您的LinearLayout添加ID:

<LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:background="#ffffff"
                android:orientation="vertical" >

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="#ffffff"
                    android:orientation="horizontal"  
                    android:id="@+id/myLinearLayout"><!-- i guess this is your LinearLayout-->

                    <ImageButton
                        android:id="@+id/imageButton1"
                        android:layout_width="wrap_content"
                        android:layout_height="77dp"
                        android:layout_weight="1.70"
                        android:background="#FFCDD2"
                        android:src="@drawable/airtel_round_s" />

                    <Button
                        android:id="@+id/airtelamt"
                        android:layout_width="188dp"
                        android:layout_height="77dp"
                        android:layout_weight="0.45"
                        android:background="#FFCDD2"
                        android:text="Button" />
                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="#ffffff"
                    android:orientation="horizontal">

                    <ImageButton
                        android:id="@+id/iciciBtn"
                        android:layout_width="wrap_content"
                        android:layout_height="77dp"
                        android:layout_weight="1.70"
                        android:background="#FFE0B2"
                        android:src="@drawable/icici_logo_s" />

                    <Button
                        android:id="@+id/iciciamt"
                        android:layout_width="188dp"
                        android:layout_height="77dp"
                        android:layout_weight="0.45"
                        android:background="#FFE0B2"
                        android:text="Button" />
                </LinearLayout>

然后从java代码:

  Button myButton = new Button(YourActivity.this);
    myButton.setText("new button");

    LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(width, height, weight);
    myButton.setLayoutParams(param);

    myButton.setBackgroundResource(YourResource); // like "android:src"
    myButton.setBackground(Drawable); // like "android:background"

   LinearLayout ll = (LinearLayout)findViewById(R.id.myLinearLayout);

    ll.addView(myButton, param);