通过Inflater来添加button控件的简单应用

以下通过Inflater来添加按钮:

public class MainActivity extends AppCompatActivity {
ImageView imageView;
private LinearLayout mainLayout;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView=(ImageView)findViewById(R.id.imageView);
        mainLayout = (LinearLayout)findViewById(R.id.mainlayout);//定义对应的LinearLayout
        LayoutInflater layoutInflater =LayoutInflater.from(this);//通过LayoutInlfater获取当前layout实例
        View buttonlayout = layoutInflater.inflate(R.layout.button_layout,null);//把按钮所在的布局加载出来
        mainLayout.addView(buttonlayout);//进行添加
}

以下是主界面的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/mainlayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="611dp"
        app:srcCompat="@mipmap/ic_launcher_round" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="click"
        android:text="上一张图"
        android:layout_gravity="center"/>
</LinearLayout>

以下是按钮所在界面布局

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

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Button" />
</LinearLayout>
Android中,如果你需要动态地创建控件并将其添加到布局中,例如在运行时响应用户输入或条件变化时,可以这样做: 1. **创建控件**:首先,你需要创建新的控件实例。例如,如果你想添加一个按钮,你可以用`LayoutInflater`从XML布局资源加载一个新的Button。 ```csharp LayoutInflater inflater = LayoutInflater.From(this); View newButtonView = inflater.Inflate(Resource.Layout.button_layout, null); ``` 2. **设置属性**:然后,你可以设置新创建的控件的属性,比如文本、ID、点击事件等。 ```csharp Button buttonWithType = newButtonView as Button; buttontype.Text = "Dynamic Button"; buttontype.Click += Button_ClickHandler; ``` 3. **添加到布局**:将这个新创建的控件添加到现有的布局中,通常是作为现有ViewGroup的子项。 ```csharp LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent); layout.addView(newButtonView, layoutParams); ``` 4. **遍历**:由于你已经将新添加控件加入了布局,所以它会被包含在遍历的范围内。只需按照上面提到的方式,使用`GetChildAt()`或`FindViewById()`方法即可访问它们。 ```csharp for (int i = 0; i < layout.ChildCount; i++) { // 遍历并操作新添加控件 } ``` 记得在遍历前检查`ChildCount`以避免空指针异常,因为如果布局中还没有子项,`ChildCount`会返回0。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值