Android学习日记2

一、搜索框实现

1、SearchView简介

SearchView是Android原生的搜索框控件,它提供了一个用户界面,用于用户搜索查询。常用属性如下:
图1

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)效果截图

图2

图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 avtivity的传值之获取activity返回的数据

Android Studio快捷键

1、详细

Android studio 常用快捷键

2、常用

AndroidStudio常用快捷键汇总

3、快速插入代码

如快速生成onActivityResult()函数内容
图
(1)通过快捷键Alt+Insert
(2)Code–>Generate
图1-1
图1-2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值