Android常见问题及开发经验总结(一)

3.ClassNotFoundException Didn’t find class “xxx.xxx.xx” 找不到对应的类

这个是因为新加的activity需要在 AndroidManifest.xml 里面注册一下这个类  不然就会报这个异常。

4. java.lang.ClassCastException: 类型转换错误


这个是因为 类型转换错误,举个例子  将button 转换为 EditText   LinearLayout 转换为RelativeLayout的时候都会报这个异常

只需要检查程序中变量或者 view的 类型就可以

5.java.lang.IndexOutOfBoundsException用非法索引访问数组时抛出的异常


这个在Android中一般在    适配器adapter里面容易出现 ,这个地方一般会产生数据交互。出现这个错误一般直接检查 数据层就可以了。

像这些简单的错误 在后台日志中都可以定位到 当前出现错误的类和第几行  直接找到对应的  检查改掉就好了。

6.java.lang.SecurityException 缺少权限异常


这个异常 原因 是没有在AndroidManifest.xml 里面注册相应的权限  看缺少哪个权限 注册一下就ok了!

写法类似这样 具体缺少哪个权限 改成对应的名字就好


6.android library cannot be launched


点击运行的工程右键出现Properties,

点击Properties,进入把is library 前的对勾去掉

然后重新运行就ok了。

下面介绍一些Android开发中一些常用的经验技巧

=========================

1.自定义title栏。


首先要在values->styles中定义一个style,然后在mainfest文件中设置android:theme.

最后在Activity中按照这个顺序写:

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

setContentView(R.layout.activity_main);

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_layout);

2.imagView居中显示问题


xml设置如下:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

android:layout_width=“fill_parent”

android:layout_height=“wrap_content”

android:layout_gravity=“center”

android:orientation=“vertical” >

<ImageView

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:id=“@+id/myImageView”

android:layout_gravity=“center”

android:scaleType=“matrix”

android:src=“@drawable/pic” >

3.去掉Activity的标题栏,全屏显示


在manifest文件中修改对应的Avtivity属性。

android:theme=“@android:style/Theme.NoTitleBar.Fullscreen”

4.如何修改应用名称及应用图标


修改程序的图标,修改drawable文件夹的i→→c_launcher.png图标,把新的图标改名覆盖就可以了。

如果你要自己的名称,可以修改AndroidManifest.xml的这个节点,application android:icon=“@drawable/ic_launcher”,不需要加文件扩展名。

ps:有些手机 比如 红米1s 。之前手机安装过程序  然后修改程序图标以后需要重启手机 才能看到修改后的图标。( 应该是手机系统的问题)!

5.调试程序


调试的时候程序如果出错,一般是查看logcat,看error发生的地方,会提示在程序的第几行,然后去找就可以了。

但有些错误没办法定位,那就把日志输出成txt,然后去google,baidu吧。

6.有点击效果的button 设置样式的方法。


首先是准备好按钮不同状态的图片

然后 在res/drawable中定义selectorBtn.xml的xml文件

<?xml version="1.0" encoding="utf-8"?>

<item android:drawable=“@drawable/btn_focus” android:state_pressed=“true”/>

最后Button的background属性中设置

<Button

android:id=“@+id/button”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:background=“@drawable/selectorBtn”/>

7、requestCode和resultCode的区别


在使用startActivityForResult()和onActivityResult()时,会分别用到requestCode和resultCode,有时候极容易将2个参数混淆起来。

requestCode 和 resultCode 混淆说明错的。

startActivityForResult(Intent intent, Int requestCode)

intent 传给B的,requestCode >=0就好,随便用于在onActivityResult()区别哪个子模块回传的数据,如果还有C.java ,D甚至E子模块的话,每个区分开不同的requestCode就好。

setResut(int resultCode, Intent intent)

resultCode 如果B子模块可能有几种不同的结果返回,可以用这个参数予以识别区分。这里还有个特殊的 RESULT_OK 值,没有特殊情况用它就好了。intent 继续不解释,传回给A的onActivityResult()

onActivityResult(int requestCode, int resultCode, Intent intent)

这里三个都不用解释了,与上文对应的东西。如果不对requestCode和resultCode 加以识别区分的话,只要有其他activity setResult到了A onActivityResult()会无差别处理。

8、在布局中使用scrollview 实现布局可以滚动效果  (滚动条):


把原来的布局用<ScrollView xmlns:android=“http://schemas.android.com/apk/res/android”

android:layout_width=“fill_parent”

android:layout_height=“wrap_content”

android:scrollbars=“none”>括起来即可实现视图的滚动。

9、全局变量Application Context


创建一个属于你自己的android.app.Application的子类,然后在manifest中申明一下这个类,这是android就为此建立一个全局可用的实例,你可以在其他任何地方使用Context.getApplicationContext()方法获取这个实例,进而获取其中的状态(变量)。 下面看一下Demo:

class MyApp extends Application {

private String myState;

public String getState(){

return myState;

}

public void setState(String s){

myState = s;

}

}

class Blah extends Activity {

@Override

public void onCreate(Bundle b){

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值