Android
一、搜索框实现
1、SearchView简介
SearchView是Android原生的搜索框控件,它提供了一个用户界面,用于用户搜索查询。常用属性如下:
2、代码展示
(1)布局
<android.widget.SearchView
android:id="@+id/city_sv"
android:iconifiedByDefault="false"
android:queryHint="请输入搜索内容"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
(2)逻辑处理
//1.列表初始化处理,适配数据
String[] mStrs = {"广州", "肇庆", "上海", "android","ak-74","m181"};
mListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mStrs));
mListView.setTextFilterEnabled(true);
//2.搜索框处理
// 设置搜索文本监听
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
// 当点击搜索按钮时触发该方法
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
// 当搜索内容改变时触发该方法
@Override
public boolean onQueryTextChange(String newText) {
if (!TextUtils.isEmpty(newText)){
//当内容不为空时,以其内容作为过滤的关键词,使列表重新适配数据
mListView.setFilterText(newText);
}else{
//列表恢复为初始状况
mListView.clearTextFilter();
}
return false;
}
});
(3)效果截图
3、有待解决的问题
- (1)setFilterText()方法只能在使用ArrayAdapter的时候才有效果.
如果ArrayAdapter不满足效果,那么只有自定义BaseAdapter,并且自定义数据过滤器Filter.- (2)模糊查询的提示不方便,不好看
解决方案:https://blog.csdn.net/sinat_37117883/article/details/76022064
二、列表详解
1、ListView控件详解
这是一篇大佬的博客,不管是入门,还是进阶都具有很高的参考价值
Android最常用的控件ListView(详解)
三、不同Activity之间的数据传递
1、Intent传递数据
这是一篇大佬的博客,详细讲述各种数据的传递:单个值、数组、对象等
Android 之最新最全的Intent传递数据方法(2017.10.15 )
2、获取Activity返回值
//步骤1
Intent mainIntent=new Intent(WeatherMainActivity.this,CityActivity.class);
startActivityForResult(mainIntent,1);
//步骤2
Bundle bundle=new Bundle();
bundle.putString("city",result);
Intent intent=new Intent();
intent.putExtras(bundle);
setResult(RESULT_OK,intent);
//步骤3
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==1){
if(resultCode==RESULT_OK){
Bundle random=data.getExtras();
Log.e("城市名 ", random.getString("city"));
}
}
}
Android Studio快捷键
1、详细
2、常用
3、快速插入代码
如快速生成onActivityResult()函数内容
(1)通过快捷键Alt+Insert
(2)Code–>Generate