Android开发的小问题

转载 2012年03月26日 12:30:37

一些小问题,不大!但是足够让你花上一天或者一个礼拜的时间去解决!

原创文章:转载请注明作者:geolo。和文章出处:http://blog.csdn.net/geolo/article/details/7058515

1.Android中的ListView无法点击事件

 如果ListView子视图中有Button等抢焦点的控件,那么需要在ListView的xml配置中加入android:descendantFocusability="blocksDescendants"这段话,同时,对Button等控件需要android:focusable="false"的处理。


2. 软键盘,顶起自定义的底部菜单(RelativeLayout)。

解决方法是Mainfest配置中对应的Activity加入android:windowSoftInputMode="stateVisible|adjustPan"信息


3. 不按Home键,让程序后台运行并退回Home界面!(通过Button模拟android的Home键盘) 

  1.                             PackageManager pm = mActivity.getPackageManager();    
  2. ResolveInfo homeInfo = pm.resolveActivity(new Intent(Intent.ACTION_MAIN)  
  3. .addCategory(Intent.CATEGORY_HOME), 0);    
  4. ActivityInfo ai = homeInfo.activityInfo;    
  5. Intent startIntent = new Intent(Intent.ACTION_MAIN);    
  6. startIntent.addCategory(Intent.CATEGORY_LAUNCHER);    
  7. startIntent.setComponent(new ComponentName(ai.packageName,ai.name));  
  1. startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    
  1. mActivity.startActivity(startIntent);     
  1. <pre>  



4.ListView中不能使用Edittext的原因。

其一: android:descendantFocusability="blocksDescendants",是该属性做的坏!该属性还会导致layout中的Edittext不能得到焦点。

其二:listview中如果用Edittext会导致Edittext内的内容在ListView自主刷新的时候,内容丢失。因此,如果数据量不是很多的情况下,可以采用Scroll+Layout方式

5. ListView或者ScrollView,定位到你指定的“自定义”layout的位置。

  1. final int x = v.getScrollX();//获取你自定义layout的X轴,貌似这边一直为0.你应该获取layout的getLeft的位置。哈哈  
  2.                     final int y = v.getTop();//获取你自定义layout的顶部的Y轴位置  
  3.   
  4.                     mScrollView.post(new Runnable() {//是个线程刷新!  
  5.                         @Override  
  6.                         public void run() {  
  7.                             mScrollView.scrollTo(x, y);//开始定位  
  8.                         }  
  9.                     });  


6. 设置最小heap内存为6MB大小。

  1. private final static int CWJ_HEAP_SIZE = 6* 1024* 1024 ;   
  2. VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE);  

7。在自己的应用中监听其他APK安装完成事件 

  1. <pre name="code" class="html"><receiver android:name=".XXReceiver">    
  2.     <intent-filter>    
  3.         <action android:name="android.intent.action.PACKAGE_ADDED"></action>    
  4.         <data android:scheme="package" /><!-- 注意!! 这句必须要加,否则接收不到BroadCast -->    
  5.     </intent-filter>    
  6. </receiver>    

String android.content.Intent.ACTION_PACKAGE_ADDED = "android.intent.action.PACKAGE_ADDED" 

Broadcast Action: A new application package has been installed on the device. The data contains the name of the package. Note that the newly installed package does not receive this broadcast. 

My include the following extras: 

    * EXTRA_UID containing the integer uid assigned to the new package. 
    * EXTRA_REPLACING is set to true if this is following an ACTION_PACKAGE_REMOVED broadcast for the same package. 

This is a protected intent that can only be sent by the system 

---------- 

当系统中新安装了一个软件或重新安装一个软件都会触发这个action的广播, 
并发送intent给接收者,发送的intent中包话新安装应用的包名、系统指定给这个应用的ID、标识是否这个广播是在ACTION_PACKAGE_REMOVED广播发送之后发送的。 

8. Android监听程序的安装和卸载

在android系统中,安装和卸载都会发送广播,当应用安装完成后系统会发android.intent.action.PACKAGE_ADDED广播。可以通过intent.getDataString()获得所安装的包名。当卸载程序时系统发android.intent.action.PACKAGE_REMOVED广播。同样intent.getDataString()获得所卸载的包名。
应用程序无法监听自己的安装与卸载,但覆盖安装可以监听到自己的android.intent.action.PACKAGE_REMOVED广播。

  1. public class PackageReceiver extends BroadcastReceiver{  
  2. @Override  
  3.     public void onReceive(Context context, Intent intent) {          
  4.         if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {  
  5.             String packageName = intent.getDataString();  
  6.             Log.i("Test","---------------" + packageName);  
  7.         }  
  8.           
  9.         if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {  
  10.          String packageName = intent.getDataString();  
  11.           Log.i("Test","---------------" + "PACKAGE_REMOVED" + packageName);  
  12.         }  
  13. }  
  14. }  

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest  
  3.    xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     package="com.test"  
  5.     android:versionCode="1"  
  6.     android:versionName="1.0">  
  7.     <application  
  8.      android:icon="@drawable/icon"  
  9.      android:label="测试">  
  10.         <receiver android:name=".PackageReceiver"  
  11.                   android:label="@string/app_name">  
  12.             <intent-filter>  
  13.               <action android:name="android.intent.action.PACKAGE_ADDED" />  
  14.               <action android:name="android.intent.action.PACKAGE_REMOVED" />  
  15.                <data android:scheme="package" />  
  16.             </intent-filter>  
  17.         </receiver>  
  18.     </application>  
  19.     <uses-sdk android:minSdkVersion="7" />  
  20.    <uses-permission android:name="android.permission.INTERNET" />  
  21.     <uses-permission android:name="android.permission.RESTART_PACKAGES"/>  
  22.     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>  
  23. </manifest>   

相关文章推荐

Android开发——菜单小问题解决

在写菜单项的时候发现一个不知道的知识点,问题是这样产生的。写好string.xml文件后,在菜单文件中添加了两个选项:“开始”,“取消”;在Activity中添加两个选项的id: private s...

学习android开发中遇到的一些小问题

菜鸟的学习笔记: (好多时候想着记录一下自己花了好长时间解决的问题,但是一直没有行动,某一天觉得记录这种事情还是有意义的,虽然中间的记录断断续续,也有时候忘记了记录,觉得记录一下也是自己的积累。)  ...

Android开发过程中遇到的一些小问题

做Android开发有一段时间了,其实在开发过程中,遇到大的问题可能每个人不一样,网上也能搜到一些大体思路,再根据自己项目的实际情况来解决,但是一些小问题,虽然不难,但是遇到了却感觉烦躁,而且这些小问...

Android开发的小问题

一些小问题,不大!但是足够让你花上一天或者一个礼拜的时间去解决! 原创文章:转载请注明作者:geolo。和文章出处:http://blog.csdn.net/geolo/article/details...
  • GEOLO
  • GEOLO
  • 2011年12月09日 21:58
  • 5632

android开发中的小问题,求解答~!

我是一个新手,最近几天才接触android平台,想做一个小软件,然后想在软件中实现下图menu那样的一个东西 ,每次运行都提示错误,实在不知道怎么办了,请各位帮帮我吧~!一下是主Activity中的代...
  • Loolo00
  • Loolo00
  • 2011年04月04日 22:37
  • 177

Android开发小问题集

由于安卓系统比较复杂,开发中会发中会碰见各种小问题,在此做一些记录,只要觉得有必要就会添加进来。1、触屏鼠标模式和触屏模式开发android4.3高通400平台时,用atmel_max 640T作为触...

android开发过程中遇到的小问题

​转自:http://www.sctarena.com/Article/Article.asp?nid=5070​ ​1、在编写xml布局的时候,总是提示[Accessibility] Missin...

Android开发小问题集

安卓开发中

各种android开发小问题解决方法链接收集,亲测有效

android 手机屏幕全屏方法:http://jingyan.baidu.com/article/f25ef2546e9ee4482c1b8297.html android中xml文件屏幕分辨率问题...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android开发的小问题
举报原因:
原因补充:

(最多只允许输入30个字)