Android 获取include标签中的控件属性并设置事件

Posted 路宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 获取include标签中的控件属性并设置事件相关的知识,希望对你有一定的参考价值。

一、先设置抽取出一个公共的控件,这里面我们用Toolbar

<?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"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <androidx.appcompat.widget.Toolbar
        android:id="@+id/tool_bar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        />
</LinearLayout>

二、在另外一个布局中通过include标签引入上面已经写好的layout布局

<?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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".activity.IncludeActivity">
    <include android:id="@+id/tool_include" layout="@layout/include_toolbar"/>
</LinearLayout>

三、最重要的一步,获取include标签中的子控件中的属性

public class IncludeActivity extends AppCompatActivity {
    private Toolbar toolbar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_include);
        //第一个id是我们给include标签设置的id,第二个id就是公共的layout中的具体控件的id
        toolbar = findViewById(R.id.tool_include).findViewById(R.id.tool_bar);
        TextView textView = new TextView(this);
        textView.setText("我是Toolbar");
        toolbar.addView(textView);
        setSupportActionBar(toolbar);
    }
}

以上是关于Android 获取include标签中的控件属性并设置事件的主要内容,如果未能解决你的问题,请参考以下文章

Android----xml文件中的控件的id设置

Android在layout xml中使用include完成静态加载

在移动端怎么将HTML5中的video标签的控件去掉或者隐藏

Android--UI之ViewStub

Android Button控件背景图片无法显示问题

Android focusable属性的作用