搜索

本文详细介绍如何在Android应用中配置和实现搜索功能,包括调用搜索框的方法、定义搜索配置文件、实现搜索的ContentProvider及获取搜索结果。

一、如何调出搜索框

在Androidmainfest中给Activity定义

            <intent-filter>
                <action android:name="android.intent.action.SEARCH"/>
            </intent-filter>
            <meta-data
                android:name="android.app.searchable"
                android:resource="@xml/searchable" />

在Activity调用onSearchRequested()方法调出搜索框。上面的android:resource没有也能调出搜索框。


二、如何定义android:resource里面的内容

<searchable xmlns:android="http://schemas.android.com/apk/res/android" 
    android:label="@string/app_name" 
    android:hint="@string/search_hint"	
    android:searchSuggestIntentAction="android.intent.action.VIEW"
	android:includeInGlobalSearch="true"
	android:searchSuggestAuthority="com.yeezone.timezone.provider"
	android:searchSuggestIntentData="content://com.yeezone.timezone.provider/data"
    android:searchSuggestSelection=" ?"> 
</searchable>

android:label 必须与Activity的label或者Application的label一致。

android:hint   搜索框内灰色的提示文字。

android:searchSuggestIntentAction    得到选择项时获取的intent中的Action(intent.getAction),随便定义。

android:searchSuggestIntentData      得到选择项时获取的intent中的data值(intent.getData),得到的Uri带有id后缀。

android:searchSuggestAuthority         查询的contentProvider的Authority。

android:searchSuggestSelection=" ?"  设置后provider里selectionArgs项就不会为null了。代表selectionArgs 。

所有定义见官网:http://developer.android.com/guide/topics/search/searchable-config.html

三、如何实现搜索的contentProvider。

当在搜索框内输入文字时(focus时也会触发)会查询ContentProvider,查询的matcher字符串为SearchManager.SUGGEST_URI_PATH_QUERY,如:

matcher.addURI(AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY, SEARCH_SUGGEST);
输入的内容存在了selectionArgs数组的第一位,下标为0。查完的结果返回时注意:

返回的cursor中,必须要有列名为如下的列:

BaseColumns._ID

SearchManager.SUGGEST_COLUMN_TEXT_1

SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID

如果返回的cursor中有SearchManager.SUGGEST_COLUMN_TEXT_2,那么搜索结果就显示两行,否则一行。



四、如何得到搜索后选择的结果

给搜索的Activity在Androidmainifest中设置android:launchMode="singleTop"保证Activity只启动一次,选择搜索结果后Activity的onNewIntent(Intent intent)方法会被调用,重写此方法。如果intent的action是android:searchSuggestIntentAction中定义的,那么代表搜索后选择结果返回了。通过intent.getData()得到Uri,此uri的string为

android:searchSuggestIntentData定义的+/+被选择项的_id。利用此uri查询这一条被选择项的详细信息。

一、 内容概要 本资源提供了一个完整的“金属板材压弯成型”非线性仿真案例,基于ABAQUS/Explicit或Standard求解器完成。案例精确模拟了模具(凸模、凹模)与金属板材之间的接触、压合过程,直至板材发生塑性弯曲成型。 模型特点:包含完整的模具-工件装配体,定义了刚体约束、通用接触(或面面接触)及摩擦系数。 材料定义:金属板材采用弹塑性材料模型,定义了完整的屈服强度、塑性应变等真实应力-应变数据。 关键结果:提供了成型过程中的板材应力(Mises应力)、塑性应变(PE)、厚度变化​ 云图,以及模具受力(接触力)曲线,完整再现了压弯工艺的力学状态。 二、 适用人群 CAE工程师/工艺工程师:从事钣金冲压、模具设计、金属成型工艺分析与优化的专业人员。 高校师生:学习ABAQUS非线性分析、金属塑性成形理论,或从事相关课题研究的硕士/博士生。 结构设计工程师:需要评估钣金件可制造性(DFM)或预测成型回弹的设计人员。 三、 使用场景及目标 学习目标: 掌握在ABAQUS中设置金属塑性成形仿真的全流程,包括材料定义、复杂接触设置、边界条件与载荷步。 学习如何调试和分析大变形、非线性接触问题的收敛性技巧。 理解如何通过仿真预测成型缺陷(如减薄、破裂、回弹),并与理论或实验进行对比验证。 应用价值:本案例的建模方法与分析思路可直接应用于汽车覆盖件、电器外壳、结构件等钣金产品的冲压工艺开发与模具设计优化,减少试模成本。 四、 其他说明 资源包内包含参数化的INP文件、CAE模型文件、材料数据参考及一份简要的操作要点说明文档。INP文件便于用户直接修改关键参数(如压边力、摩擦系数、行程)进行自主研究。 建议使用ABAQUS 2022或更高版本打开。显式动力学分析(如用Explicit)对计算资源有一定要求。 本案例为教学与工程参考目的提供,用户可基于此框架进行拓展,应用于V型弯曲
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值