当前位置: 首页 > news >正文

宝塔网站建设跳转微信可打开网站权重优化方式

宝塔网站建设跳转微信可打开,网站权重优化方式,常州网站建设专业的公司,建设 银行网网站一、博文导读 本文是基于Android Studio真实项目#xff0c;通过解析源码了解真实应用场景#xff0c;写文的视角和读者是同步的#xff0c;想到看到写到#xff0c;没有上帝视角。 前期回顾#xff0c;本文是第二期。 private Unbinder mUnbinder; 只是声明了一个 接口…一、博文导读 本文是基于Android  Studio真实项目通过解析源码了解真实应用场景写文的视角和读者是同步的想到看到写到没有上帝视角。 前期回顾本文是第二期。 private Unbinder mUnbinder; 只是声明了一个 接口类型 的变量并没有直接实例化。  二、Unbinder接口 这个 Unbinder 接口通常出现在基于依赖注入框架的 Android 开发中例如 ButterKnife用于解绑视图引用。它的主要作用是管理绑定的生命周期特别是在 Activity 或 Fragment 销毁时释放资源防止内存泄漏。 上面的方法标记为 UiThread表示它只能在主线程中调用。如果尝试在后台线程调用此方法则会导致问题。如果你在后台线程调用了这个方法而没有切换到主线程Android Studio 可能会发出警告。 unbind 方法 这是一个抽象方法表示解绑的操作。在 Android 开发中绑定视图如使用 ButterKnife.bind()后需要在 Activity 或 Fragment 销毁时调用 unbind 方法释放视图资源避免内存泄漏。 EMPTY 对象 Unbinder.EMPTY 是一个静态的空实现对象作为默认实现用于防止空指针异常。如果某个绑定没有需要解绑的资源可以直接返回这个空实现。这样即使调用了 unbind也不会引发异常。 Unbinder unbinder Unbinder.EMPTY; // 初始值为 EMPTY简单的使用场景 public class MainActivity extends AppCompatActivity {BindView(R.id.textView)TextView textView;private Unbinder unbinder;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 绑定视图unbinder ButterKnife.bind(this);}Overrideprotected void onDestroy() {super.onDestroy();// 解绑视图释放资源防止内存泄漏unbinder.unbind();} }在活动页面销毁的时候调用解绑视图来释放资源。 三、绑定和解绑 先看两种视图绑定的方法对比 现代官方版本view binding举例 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalandroid:padding16dpTextViewandroid:idid/textView1android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textHello, View Binding!android:textSize18sp /Buttonandroid:idid/button1android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textClick Me / /LinearLayout简单的线性布局一个文本和一个按钮其id分别为textView1和button1。下面是活动页面的代码 public class MainActivity extends AppCompatActivity {// 声明一个视图绑定对象//ActivityMainBinding 是根据你的 XML 文件 activity_main.xml 自动生成的绑定类。private ActivityMainBinding binding;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//ActivityMainBinding.inflate() 方法会加载 activity_main.xml 布局文件。//getLayoutInflater() 是 Android 提供的工具用于将 XML 文件转化为对应的视图对象。//结果binding 变量现在就代表了整个布局里面包含了所有控件的直接引用。binding ActivityMainBinding.inflate(getLayoutInflater());setContentView(binding.getRoot());// 使用绑定对象直接访问视图binding.textView1.setText(Welcome to View Binding!);binding.button1.setOnClickListener(v -Toast.makeText(this, Button clicked!, Toast.LENGTH_SHORT).show());}Overrideprotected void onDestroy() {super.onDestroy();// 防止内存泄漏binding null;} } 工作原理 直接生成绑定类视图绑定会为每个布局文件自动生成一个对应的绑定类比如 activity_main.xml 会生成 ActivityMainBinding。通过绑定类访问控件直接通过 binding 对象访问控件无需手动查找视图。视图绑定的优势是直接通过 binding 对象访问控件类型安全且简洁高效不再需要 findViewById。 以下是使用 ButterKnife 所需的完整配置包括依赖、代码示例以及运行步骤 1. 添加 ButterKnife 的依赖 在你的 build.gradle 文件中添加以下依赖 项目根目录的 build.gradle 确保添加 ButterKnife 的 Maven 仓库 allprojects {repositories {google()mavenCentral()} }模块的 build.gradle 在 dependencies 中添加 ButterKnife 的依赖 dependencies {// 添加 ButterKnife 的核心库implementation com.jakewharton:butterknife:10.2.3// 添加 ButterKnife 的注解处理器用于生成代码annotationProcessor com.jakewharton:butterknife-compiler:10.2.3 }xml界面不变创建 MainActivity.java 并添加以下代码 import android.os.Bundle; import android.widget.Button; import android.widget.TextView; import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick;public class MainActivity extends AppCompatActivity {// 使用 BindView 注解绑定布局中的控件BindView(R.id.textView) TextView textView;BindView(R.id.button) Button button;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 初始化 ButterKnifeButterKnife.bind(this);// 设置默认文本textView.setText(Welcome to ButterKnife!);}// 使用 OnClick 注解绑定点击事件OnClick(R.id.button)void onButtonClick() {Toast.makeText(this, Button clicked!, Toast.LENGTH_SHORT).show();} }老版本的试图绑定还是很麻烦的。
http://www.hkea.cn/news/14358271/

相关文章:

  • 韩国最牛的设计网站大全沈阳世纪兴网站制作
  • 北京网站制作百度推广百度网站登录
  • 上海网站建设中小型企业wordpress博客设置主题方法
  • 同一家公司可以做几个网站吗免费ppt模板制作软件
  • 有什么做服装的网站好西安电商平台网站
  • 网站建设的目的及目标一个空间可以放几个网站
  • 国内可以做网页的网站附近的教育培训机构有哪些
  • app手机网站开发app拉新平台有哪些
  • 网站的服务器是什么西班牙语网站设计公司哪家好
  • 长沙网站制作多少钱分类网站怎么做项目
  • 网站规划的公司南京模板建站哪家好
  • 淘宝客 备案 网站名称淘宝客模板 wordpress
  • 长安网站设计盘锦做网站公司
  • 新世纪建设集团有限公司网站专门做logo的网站
  • 沧州网站建设代理价格建设局网站公告
  • 上海外贸营销网站建设地址网站突然不收录了
  • 怎样让百度搜不到自己的网站自适应网站系统吗
  • [网络收集]form表单及网站开发中常用js表单取值方法伊春网站优化
  • 制作一个自己的网站岳阳网站建设推广
  • 做网站要商标吗wordpress 文章文件夹
  • 松门建设规划局网站冠县网站建设是什么
  • 20个优秀的响应式设计html5网站模板人工智能
  • 想建书画网站怎么做的电子商务网站优化方案
  • o2o网站建设特色9377手游交易平台
  • 网站建设平台赚钱wordpress apahce 静态 windows
  • 找网站公司做网站用了织梦可以吗快速开发网站
  • wordpress网站 搬家拓者吧室内设计吧官网
  • 做网站公司汉狮价格最新新闻事件2023
  • 武夷山景区网站建设特点wordpress采集爬虫
  • 做网站uiWordpress 十大