一些常见的Android问题解决方案

简介: 一些常见的Android问题解决方案

android输入框内容改变的监听事件

 android输入框内容改变的监听事件一般用于比如我们常见的:登录qq时 用户名输入完整时头像自动显示,或者注册用户时实时提示注册格式是否正确等。那么我们在这里举例:判断输入框是否有内容,来改变按钮的状态,常用于搜索一类。截图如下:(布局代码不再给出)

image.png

首先所在的activity要 implements TextWatcher并实现其方法:

familyPhonenum.addTextChangedListener(this);

image.gif

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
    if (!content.isEmpty()) {
        textView.setClickable(true);
        textView.setEnabled(true);
        textView.setTextColor(Color.BLUE);
    } else {
        textView.setClickable(false);
        textView.setEnabled(false);
        textView.setTextColor(Color.GRAY);
    }
}
@Override
public void afterTextChanged(Editable s) {
}

image.gif

Android开发listview最后一行显示下划线

 

其实很简单,android:layout_height="match_parent"
                android:minHeight="90dp"

image.gif

只要设置这两个属性就可以了。

image.gif

Android开发做一个简单的音乐播放器

 Android开发如何做一个简单的音乐播放器,首先我们先要知道用到的知识点有哪些。

1.MediaPlayer:可以播放本地资源、sd卡内存资源以及网络uri资源,在这里我们播放sd卡上的音乐资源.

2.Contentresolver:如何获取本地音乐资源。

3.如何通过播放/暂停/上一首/下一首/切换播放资源。

了解上述问题后,我们开始写代码:

1.获取本地音乐资源列表:

  1).读取sd卡上的内容我们需要在配置文件中添加权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>

  2).获取本地资源文件列表:

ContentResolver contentResolver=getContentResolver();
  //查询本地资源文件
 Cursor c=contentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,null,null);
    if (c!=null){
            int i=0;
            while(c.moveToNext()){
                Map<String,Object> map= new HashMap<String, Object>();//存放在map中显示在listview列表
                //歌曲名
                name[i]=c.getString(c.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
                //歌曲id
                id[i]=c.getInt(c.getColumnIndex(MediaStore.Audio.Media._ID));
                //作者
                 artical[i]=c.getString(c.getColumnIndex(MediaStore.Audio.Media.ARTIST));
                //路径
                url[i]=c.getString(c.getColumnIndex(MediaStore.Audio.Media.DATA));
                map.put("SongName", name[i]);
                map.put("id", id[i]);
                map.put("Artical", artical[i]);
                map.put("url", url[i]);
                list.add(map);
                i++;
            }

   通过上述代码就可将本地资源文件显示在listview列表中。

  3.点击播放按钮:

    点击播放按钮时,有两种可能:1).当前音乐处于暂停状态,点击播放继续播放。2).当前正在播放音乐,点击播放,音乐从头播放。设置标记量isPause=false;如果当前是处于停止状态,则继续播放:

 

if (isPause){
            mediaPlayer.start();
            isPause=false;
        }

    如果当前不是处于暂停状态,则重置当前音乐,再次播放。

   

if (mediaPlayer.isPlaying()){
                mediaPlayer.stop();
                mediaPlayer.reset();
            }
            Uri conuri= ContentUris.withAppendedId(android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,id[index]);
            mediaPlayer.setDataSource(getApplicationContext(),conuri);
            mediaPlayer.prepareAsync();
            isPause=false;

 下一首或上一首更改当前音乐标示index即可。

 

源码:https://github.com/huangolinqing/Music1/




目录
相关文章
|
8月前
|
XML Android开发 数据格式
android点击FrameLayout、LinearLayout等父布局没响应的原因以及解决方案
android点击FrameLayout、LinearLayout等父布局没响应的原因以及解决方案
196 2
|
8月前
|
安全 Shell Android开发
Android系统 init.rc sys/class系统节点写不进解决方案和原理分析
Android系统 init.rc sys/class系统节点写不进解决方案和原理分析
461 0
|
2月前
|
开发框架 前端开发 Android开发
探索安卓和iOS应用开发中的跨平台解决方案
【10月更文挑战第42天】在移动应用开发的广阔天地中,安卓和iOS系统如同两座巍峨的山峰,分别占据着半壁江山。开发者们在这两座山峰之间穿梭,努力寻找一种既能节省资源又能提高效率的跨平台开发方案。本文将带你走进跨平台开发的世界,探讨各种解决方案的优势与局限,并分享一些实用的代码示例,助你在应用开发的道路上更加游刃有余。
|
2月前
|
安全 搜索推荐 程序员
深入探索Android系统的碎片化问题及其解决方案
在移动操作系统的世界中,Android以其开放性和灵活性赢得了广泛的市场份额。然而,这种开放性也带来了一个众所周知的问题——系统碎片化。本文旨在探讨Android系统碎片化的现状、成因以及可能的解决方案,为开发者和用户提供一种全新的视角来理解这一现象。通过分析不同版本的Android系统分布、硬件多样性以及更新机制的影响,我们提出了一系列针对性的策略,旨在减少碎片化带来的影响,提升用户体验。
|
3月前
|
开发框架 移动开发 Android开发
安卓与iOS开发中的跨平台解决方案:Flutter入门
【9月更文挑战第30天】在移动应用开发的广阔舞台上,安卓和iOS两大操作系统各自占据半壁江山。开发者们常常面临着选择:是专注于单一平台深耕细作,还是寻找一种能够横跨两大系统的开发方案?Flutter,作为一种新兴的跨平台UI工具包,正以其现代、响应式的特点赢得开发者的青睐。本文将带你一探究竟,从Flutter的基础概念到实战应用,深入浅出地介绍这一技术的魅力所在。
100 7
|
4月前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台解决方案
【9月更文挑战第27天】在移动应用开发的广阔天地中,安卓和iOS两大操作系统如同双子星座般耀眼。开发者们在这两大平台上追逐着创新的梦想,却也面临着选择的难题。如何在保持高效的同时,实现跨平台的开发?本文将带你探索跨平台开发的魅力所在,揭示其背后的技术原理,并通过实际案例展示其应用场景。无论你是安卓的忠实拥趸,还是iOS的狂热粉丝,这篇文章都将为你打开一扇通往跨平台开发新世界的大门。
|
3月前
|
Android开发
Android开发显示头部Bar的需求解决方案--Android应用实战
Android开发显示头部Bar的需求解决方案--Android应用实战
27 0
|
5月前
|
前端开发 开发工具 Android开发
探索安卓与iOS应用开发:跨平台解决方案的崛起
【8月更文挑战第27天】在移动设备日益普及的今天,安卓和iOS系统占据了市场的主导地位。开发者们面临着一个重要问题:是选择专注于单一平台,还是寻找一种能够同时覆盖两大系统的解决方案?本文将探讨跨平台开发工具的优势,分析它们如何改变了移动应用的开发格局,并分享一些实用的开发技巧。无论你是新手还是资深开发者,这篇文章都将为你提供有价值的见解和建议。
|
5月前
|
Android开发
Android编译出现Warning: Mapping new ns to old ns的解决方案
Android编译出现Warning: Mapping new ns to old ns的解决方案
434 3
|
5月前
|
前端开发 JavaScript Android开发
探索Android和iOS开发中的跨平台解决方案
【8月更文挑战第1天】随着移动应用市场的不断扩张,开发者面临一个共同的挑战——如何高效地为多个平台创建和维护应用程序。本文将深入探讨跨平台开发工具,特别是Flutter和React Native,通过比较它们的优势和限制,并辅以实际代码示例,揭示这些工具如何帮助开发者在保持高性能的同时,实现代码的最大化重用。