Android 源码解析之Adapter和AdapterView与适配器模式
概述
在Android
中大量存在着适配器模式,其中的设计思路就是Adapter
(提供数据)设在到AdapterView
(展示数据集合的视图),其中Adapter
体系结构如下
而AdapterView
有ListView
、GridView
、Spinner和ExpandableListView
等,Adapter
和AdapterView
又使用了观察者模式,
其中Adapter
相当于被观察者,AdapterView
相当于观察者
Adapter体系
Adapter
Adapter
是一个顶层接口,源码地址: http://www.grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/widget/Adapter.java
其中定义了如下方法:
- void registerDataSetObserver(DataSetObserver observer);注册观察者.
- void unregisterDataSetObserver(DataSetObserver observer);反注册观察者.
- int getCount();返回Adapter中数据集的数量.
- Object getItem(int position);根据
position
获取数据集中相应的数据项. - long getItemId(int position);获取
postion
位置数据项的id,通常为position
. - boolean hasStableIds();当数据源发生了变化的时候,原有数据项
id
会不会变化.true表示不变,false可能变化.默认为false. - View getView(int position, View convertView, ViewGroup parent);根据
position
创建对应的ui
子项.
ListAdapter
ListAdapter
继承自Adapter
,源码地址: http://www.grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/widget/ListAdapter.java
在AbsListView
中的setAdapter(ListAdapter adapter)
方法中传入的就是这个Adapter
,AbsListView
的继承类有ListView
、GridView
和ExpandableListView
相较于Adapter
,ListAdapter
中增加了如下方法
- boolean areAllItemsEnabled();
Adapter
中所有的数据源是否是enabled的. - boolean isEnabled(int position);对应
position
的Item是否是enabled的.
SpinnerAdapter
SpinnerAdapter
也是继承自Adapter
,源码地址: http://www.grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/widget/SpinnerAdapter.java
在AbsSpinner
中的setAdapter(SpinnerAdapter adapter)
方法中传入的就是这个Adapter
,AbsSpinner
的继承类有Gallery
, Spinner
和AppCompatSpinner
相较于Adapter
,SpinnerAdapter
中新增了如下方法
- View getDropDownView(int position, View convertView, ViewGroup parent);此方法如
getview
的声明类似.主要供AbsSpinner
生成下拉弹出框的UI
BaseAdapter
BaseAdapter
实现了ListAdapter
和SpinnerAdapter
,源码地址 : http://www.grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/widget/BaseAdapter.java
BaseAdapter
中实现了观察者模式,其中维护了一个 DataSetObservable
,用于数据集变化的观察者操作.
而且BaseAdapter
中重写了getDropDownView
,但是其中直接调用了getView
方法并返回.
其中复写了一些方法,设置了默认值,留下一写用户必须实现的比如getView
方法等.
public abstract class BaseAdapter implements ListAdapter, SpinnerAdapter {private final DataSetObservable mDataSetObservable = new DataSetObservable();public boolean hasStableIds() {return false;}//...public boolean areAllItemsEnabled() {return true;}public boolean isEnabled(int position) {return true;}public View getDropDownView(int position, View convertView, ViewGroup parent) {return getView(position, convertView, parent);}public int getItemViewType(int position) {return 0;}public int getViewTypeCount() {return 1;}public boolean isEmpty() {return getCount() == 0;}
}
ArrayAdapter
ArrayAdapter
继承BaseAdapter
抽象类,并实现了Filterable
, ThemedSpinnerAdapter
接口,源码地址: http://www.grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/widget/ArrayAdapter.java
其中ArrayAdapter
的构造方法
/*** Constructor** @param context The current context.* @param resource The resource ID for a layout file containing a layout to use when* instantiating views.* @param textViewResourceId The id of the TextView within the layout resource to be populated* @param objects The objects to represent in the ListView.*/public ArrayAdapter(@NonNull Context context, @LayoutRes int resource,@IdRes int textViewResourceId, @NonNull List<T> objects) {mContext = context;mInflater = LayoutInflater.from(context);mResource = mDropDownResource = resource;mObjects = objects;mFieldId = textViewResourceId;}
其中resource
是数据项对应的layout
文件,textViewResourceId
是item中的TextView的id
(因为ArrayAdapter
只能显示文本列表,Layout
中必须包含TextView
)
如果我们的Layout
文件以TextView
作为根节点,那么id传入0即可,及调用其重载构造函数即可.否则就会调用view.findViewById(mFieldId);
找到TextView.
// ArrayAdapter$getView()
@Overridepublic @NonNull View getView(int position, @Nullable View convertView,@NonNull ViewGroup parent) {return createViewFromResource(mInflater, position, convertView, parent, mResource);}private @NonNull View createViewFromResource(@NonNull LayoutInflater inflater, int position,@Nullable View convertView, @NonNull ViewGroup parent, int resource) {//...if (mFieldId == 0) {// If no custom field is assigned, assume the whole resource is a TextViewtext = (TextView) view;} else {// Otherwise, find the TextView field within the layouttext = (TextView) view.findViewById(mFieldId);//...}//...final T item = getItem(position);if (item instanceof CharSequence) {text.setText((CharSequence) item);} else {text.setText(item.toString());}return view;}
其中objects
就是数据源,但是这个数据源需要注意的是不能传入数组 ,因为如果传入数组最终会通过Arrays.asList()
转换为list,
但是ArrayAdapter
中添加了对数据源的add
、addAll
、insert
、remove
、clear
操作,此时如果对数据源进行相关操作,
会抛出Java.lang.UnsupportedOperationException
异常,因为Arrays.asList()
转换的List
是java.util.AbstractList
类型.
见源码部分:
public ArrayAdapter(@NonNull Context context, @LayoutRes int resource,@IdRes int textViewResourceId, @NonNull T[] objects) {this(context, resource, textViewResourceId, Arrays.asList(objects));}
// ArrayAdapter 的增加操作
public void add(@Nullable T object) {synchronized (mLock) {if (mOriginalValues != null) {mOriginalValues.add(object);} else {mObjects.add(object);}}if (mNotifyOnChange) notifyDataSetChanged();}
如上就是ArrayAdapter
中的add
操作,这里有一个mNotifyOnChange
变量控制是否需要调用notifyDataSetChanged
方法来刷新界面,这在增加多条数据的时候尤其有用,
因为调用此方法后要渲染整个UI,多次重新绘制会降低性能,因此可以利用此变量在数据添加完成后调用刷新操作.
SimpleAdapter
SimpleAdapter
和 ArrayAdapter
一样,都是实现了BaseAdapter
,源码地址: http://www.grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/widget/SimpleAdapter.java
我们看一下SimpleAdapter
的构造函数
public SimpleAdapter(Context context, List<? extends Map<String, ?>> data,@LayoutRes int resource, String[] from, @IdRes int[] to) {//...}
SimpleAdapter
中允许传入一个List<? extends Map<String, ?>>
类型的数据源,
每个数据项对应一个Map
,from
表示的是Map
中key
的数组。
to
这个数组中传入的就是要设置数据的id
,数组长度为map
的大小.
SimpleAdapter
的简单示例: SimpleAdapterDemo.java
SimpleCursorAdapter
SimpleCursorAdapter
源码地址: http://www.grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/widget/SimpleCursorAdapter.java
其继承路线如下所示:
SimpleCursorAdapter->ResourceCursorAdapter->CursorAdapter->BaseAdapter
SimpleCursorAdapter
常和数据库关联使用,比如如下示例展示手机中的联系人列表
public class MyListActivity extends ListActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// Get a cursor with all peopleCursor c = getContentResolver().query(Contacts.CONTENT_URI,CONTACT_PROJECTION, null, null, null);startManagingCursor(c);ListAdapter adapter = new SimpleCursorAdapter(this,// Use a template that displays a text viewandroid.R.layout.simple_list_item_1,// Give the cursor to the list adatperc,// Map the NAME column in the people database to...new String[] {Contacts.DISPLAY_NAME},// The "text1" view defined in the XML templatenew int[] {android.R.id.text1});setListAdapter(adapter);}private static final String[] CONTACT_PROJECTION = new String[] {Contacts._ID,Contacts.DISPLAY_NAME};
}
如上示例仅仅是一个简单的示例,在实际使用中我们一般会添加Loader
来加载Contentrovider
的数据,因为这是一个耗时的操作.
AdapterView与Adapter的绑定
AdapterView
的继承体系如下,
其中大多数我们都有使用过,在我们使用过程中,一般都是调用方法setAdapter(Adapter)
来设置数据,
之后数据就可以展示到界面上来了,也就是说他们之间的绑定操作就在此了.在之前的Adapter模式中有介绍,这里我们以ListView为例来看看他们是如何通信的
我们都知道给ListView
设置Adapter
的时候,一般都是继承BaseAdapter
,且其中有一个方法notifyDataSetChanged
来重新绘制界面
可以查看上面BaseAdapter
的源码
public void registerDataSetObserver(DataSetObserver observer) {mDataSetObservable.registerObserver(observer);}public void unregisterDataSetObserver(DataSetObserver observer) {mDataSetObservable.unregisterObserver(observer);}public void notifyDataSetChanged() {mDataSetObservable.notifyChanged();}
其调用了DataSetObservable
的提示更新的方法,这里采用了Observable/Observer
(观察者模式).
// $DataSetObservable .notifyChanged()// 通知观察者public void notifyChanged() {synchronized(mObservers) {for (int i = mObservers.size() - 1; i >= 0; i--) {mObservers.get(i).onChanged();}}}// abstract DataSetObserver.onChanged()// 观察者更新public void onChanged() {// Do nothing}
其中 BaseAdapter
中还要两个方法用于 注册和反注册观察者 ,观察者只有注册到了被观察者中才能起作用,我们来看一下setAdapter
方法的源码
@Overridepublic void setAdapter(ListAdapter adapter) {//...// AbsListView#setAdapter will update choice mode states.super.setAdapter(adapter);if (mAdapter != null) {//...mDataSetObserver = new AdapterDataSetObserver();mAdapter.registerDataSetObserver(mDataSetObserver);mRecycler.setViewTypeCount(mAdapter.getViewTypeCount());//...} else {//...}requestLayout();}
这里可以看到setAdapter方法中构建了一个AdapterDataSetObserver
并设置给了Adapter
,即注册了观察者,之后就可以调用观察者的通知方法了.
继续追踪,我们可以找到这个AdapterDataSetObserver
是在AbsListView
中定义的
//继承自AdapterView内部类AdapterDataSetObserver的AdapterDataSetObserverclass AdapterDataSetObserver extends AdapterView<ListAdapter>.AdapterDataSetObserver {@Overridepublic void onChanged() {super.onChanged();//...}@Overridepublic void onInvalidated() {super.onInvalidated();//...}}
总结起来就是AdapterView
中的setAdapter
方法会创建一个观察者注册到Adapter
来观察数据集合的改变,
当Adapter
中持有的数据集合改变的时候,就会通知观察者来更新UI.
参考:
使用详解及源码解析Android中的Adapter、BaseAdapter、ArrayAdapter、SimpleAdapter和SimpleCursorAdapter
Android设计模式源码解析之ListView观察者模式
Adapter数据变化改变现有View的实现原理及案例
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 栈的应用之括号匹配(c语言)
#include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 /*顺序栈的应用之括号匹配*/ typedef struct {char data[MAXSIZE];int top;}*sqStack,sepStack; sqStack initStack()//栈的初始化 {sqStack s;s=(sqStack)malloc(sizeof(sepStack));//为栈顶元素动态…...
2024/4/27 16:18:20 - layui 新手实例教程
首先: 官网地址:https://www.layui.com/ 食用建议:1,官方文档和官方实例 &&开源的项目 文档: https://www.layui.com/doc/ 实例:https://www.layui.com/demo/ 项目demo:https://github.com/FairyLii/layuiTest (非常厚脸皮的放上了自己写的小demo,这个非常简单…...
2024/4/12 5:54:15 - 小甲鱼Python教程第22讲--python函数:递归 笔记习题及答案
1.递归概念 调用自身的函数,并且有正确的返回条件递归求阶乘:def jie(n):if n==1:return 1else:return n*jie(n-1)#自己调用自己结果: jie(5) 120习题及答案 0.递归在编程上的形式是如何表现的?函数调用本身的一个行为1.递归必须满足哪两个条件? 1)函数调用自身 2)设…...
2024/4/27 13:43:45 - UITableView插入Section
首先确保你的tableview在正常刷新的时候也没问题,因为插入Section只是多了个动画效果 主要的为 [tableView beginUpdates]; 和 [tableView endUpdates]; 确保这个刷新不会在循环里面,就是插入未结束的时候不能重新进行插入 insertSections:<#(nonnull NSIndexSet *)#> …...
2024/4/12 13:07:00 - python stack 括号匹配
LeetCode 20 括号匹配 先建立一个空栈,左边括号用left表示,右边括号用right表示,验证s中的字符是否与left匹配,如果是则压入栈中,判断是否与右边括号匹配,如果栈不为空并且左右括号不匹配则返回False,否则匹配弹出栈中元素,如果栈中的元素不为left或者right中的值,返回…...
2024/4/12 5:53:45 - Google的YSlow——Page Speed(附插件下载)
Yahoo的YSlow大家应该都比较熟悉了,那是找出我们网页为什么缓慢的利器。其实Google也有类似的FireFox插件,名字叫做“Page Speed”,虽然名字比YSlow逊色很多,但是功能却完全不在YSlow之下。不同于YSlow的14条衡量标准,“Page Speed”的网页速度衡量标准又是什么呢?本文将…...
2024/4/12 5:53:51 - 小甲鱼python021课后题
小甲鱼python021课后题请使用lambda表达式将下边函数转变为匿名函数?def fun_A(x,y=3):return x *yanswer:lambda x,y=3 : x*y请将下边的匿名函数转变为普通的屌丝函数?lambda x: x if x%2 else Noneanswer: def fun(x):if x%2:return xelse:return None感受一下使用匿名函数…...
2024/4/27 15:26:40 - 枚举器enumerateObjectsUsingBlock
枚举器是一种苹果官方推荐的更加面向对象的一种遍历方式,相比于for循环,它具有高度解耦、面向对象、使用方便等优势 1.测试场景 一个未知内部数据的数组,判断数组中是否有字符串@“2” 方式:通过遍历,判断数组元素是否等于@“2” [@[@"1",@"2",@"3…...
2024/4/12 10:23:31 - 链栈实现括号匹配
链栈实现括号匹配数据结构中有一种结构叫做栈,它是一种先入后出的结构,通过这个程序的编写,基本上颠覆了我对于指针的认识,我才发现我对于c语言的指针并没有深入理解,我仅仅是对于一级指针有所了解。指针的值和指针所指向的对象我还有点搞不清楚。这个程序是括号的检验,因…...
2024/4/12 5:54:21 - web优化之YSlow的使用
前几天看了几篇关于web优化的文章,优化方法大同小异,减少HTTP请求,压缩代码,图片汇总等。今天看到关于YSlow的介绍,才想到竟然有这么个插件,提示你哪里可以优化。YSlow是Yahoo发布的一款基于FireFox的插件,安装YSlow必须首先先安装 Firebug,然后下载YSlow,再对其安装。…...
2024/4/18 16:58:28 - Font-Awesome最新版完整使用教程
何为Font-AwesomeFont Awesome gives you scalable vector icons that can instantly be customized — size, color, drop shadow, and anything that can be done with the power of CSS.简言之:可伸缩的图标(矢量化),高度自定义(大小,颜色,阴影等)优势目前图标总数共有519个…...
2024/4/12 5:54:03 - 小甲鱼Python第四讲课后习题
1while语句中,当条件为真时,它会一直循环下去,比如下面的例子,不过可以用Ctral + C来强制结束while C:print("i love you")2.观察打印次数i = 10 while i > 0:print("i love you")i = i - 1打印10次 ‘i love you’3.注意and的用法(表示两边都为真)…...
2024/4/12 5:53:57 - Yslow安装使用, 网站性能工具Yslow
本文whyboy站长讲解 Yslow安装 以及 Yslow使用 ,打开Yslow官网就能看到有四个版本可供选择:火狐(firefox)浏览器、谷歌(chrome)浏览器、欧朋(opera)浏览器和移动版。本文介绍的火狐版本文whyboy站长讲解Yslow安装以及Yslow使用,打开Yslow官网就能看到有四个版本可供选择…...
2024/4/5 0:14:20 - 题目1153:括号匹配问题[栈]
题目描述:在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左…...
2024/4/14 17:30:43 - Android6.0权限适配实践
Android6.0权限适配实践概要判断是否需要请求权限 如何请求权限 如何部分请求权限 处理权限请求回调 关于“自定义提示”的说明 问题一:获取权限后进入设置取消权限再回到应用的问题 问题二:勾选“不再询问”的说明判断是否需要请求权限关于权限申请,第一手的资料可以查看官…...
2024/4/12 5:53:57 - 【小甲鱼Python】论一只爬虫的自我修养2:实战 (使用2020.3.1有道翻译的网页,解决找不到method等问题)
笔记例子一:从猫网站上下载一张猫的图片猫网站:http://placekitten.com要下载的猫图片:http://placekitten.com/g/500/800实现代码:import urllib.requestresponse = urllib.request.urlopen(http://placekitten.com/g/500/800) cat_img = response.read()with open(cat.jp…...
2024/4/12 5:54:21 - 微擎插件手册
微擎插件手册 流程 文档 文件及目录结构 举例用法 简单规范微擎插件手册微擎的插件是合理添加功能的最基本原子,本手册是本人自行摸索而来,如有不严谨之处,请在我的博客1下指正。当面对新的功能需求,新增插件往往比修改插件更重,却能保持更好的正交性、健壮性,令代码变得…...
2024/4/19 15:30:31 - 前端页面性能测试之YSLOW(一款实用的网站性能检测工具)
概述YSlow是Yahoo发布的一款基于FireFox的插件,这个插件可以分析网站的页面,并告诉你为了提高网站性能,如何基于某些规则而进行优化。安装 官网:http://yslow.org/ 官方下载,点击安装,Google在扩展程序中直接拖进也可以,安装成功后会在右上角显示图标YSLOW有什么作用?…...
2024/4/14 20:19:29 - 括号匹配之添加最少括号匹配
这道题是基于括号匹配题目扩展而来的,使用动态规划思想。 思想如下:动态规划数组所中的a[i][j]代表的是要让字符串索引从i到j的子字符串中括号匹配所要添加的最少括号数 而a[i][j+1]的一种可能是a[i][j]+1,即对于新进入的第j+1个括号还需要再加一个括号与之匹配 但如果a[i][…...
2024/4/20 1:46:08 - Handler消息机制(一)——基本使用及存在的性能问题
一 、Handler是什么?主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作。简…...
2024/4/16 21:08:53
最新文章
- MATLAB无法识别汉字的问题解决方案
试了100种方法,都是不行。 期待的结果 应该是这样式的: feature(‘locale’) ans 包含以下字段的 struct: ctype: zh_CN.UTF-8collate: zh_CN.UTF-8time: zh_CN.UTF-8numeric: en_US_POSIX.UTF-8monetary: zh_CN.UTF-8messages: zh_CN.UTF-8encoding…...
2024/4/27 17:04:32 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - Jmeter02-1:参数化组件CVS
目录 1、Jmeter组件:参数化概述 1.1 是什么? 1.2 为什么? 1.3 怎么用? 2、Jmeter组件:参数化实现之CSV Data Set Config(重点中重点) 2.1 是什么? 2.2 为什么? 2.3 怎么用? …...
2024/4/25 11:52:18 - Python 潮流周刊#44:Mojo 本周开源了;AI 学会生成音乐了
△△请给“Python猫”加星标 ,以免错过文章推送 你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。本周刊开源,欢迎投稿[1]。另有电报频道[2]作为副刊,补充发布更加丰富的资讯,…...
2024/4/24 11:19:08 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/26 18:09:39 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/26 20:12:18 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/26 23:05:52 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/27 4:00:35 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/25 18:39:22 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/26 21:56:58 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/27 9:01:45 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/26 16:00:35 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/25 18:39:16 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/26 22:01:59 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/25 18:39:14 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/26 23:04:58 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/25 2:10:52 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/25 18:39:00 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/26 19:46:12 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/27 11:43:08 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/27 8:32:30 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57