自己在开发过程中碰到的一些错误 及 一些经验总结,主要针对一些刚开始步入开发行业的新人,大神可直接忽略此贴。给开发新人提供一些经验介绍!
从最简单的问题开始来说:
查看res中资源文件,图片,xml等。
1)比如图片文件名不能有大写不能有空格。2)xml中不能有错误 xml中有错误 记得不要clean项目 一旦clean 所有的类中都会报错显示找不到R文件 最后搞定错误之后 Project->clean就可以了。
这个最常见 最初级 但是好多人还是会犯的一个错误。
1)变量为空 2)控件view为空 这个都是因为没有初始化 的原因。
举两个简单的例子: String str; str.equals("s"); //没给str赋值 直接使用 str还是null
Button sButton; sButton.setText(""); //没有初始化sButton sButton 还是null
3.ClassNotFoundException Didn't find class "xxx.xxx.xx" 找不到对应的类
这个是因为新加的activity需要在 AndroidManifest.xml 里面注册一下这个类 不然就会报这个异常。
这个是因为 类型转换错误,举个例子 将button 转换为 EditText LinearLayout 转换为RelativeLayout的时候都会报这个异常
只需要检查程序中变量或者 view的 类型就可以
这个在Android中一般在 适配器adapter里面容易出现 ,这个地方一般会产生数据交互。出现这个错误一般直接检查 数据层就可以了。
像这些简单的错误 在后台日志中都可以定位到 当前出现错误的类和第几行 直接找到对应的 检查改掉就好了。
这个异常 原因 是没有在AndroidManifest.xml 里面注册相应的权限 看缺少哪个权限 注册一下就ok了!
<uses-permission android:name="android.permission.INTERNET" />写法类似这样 具体缺少哪个权限 改成对应的名字就好
点击运行的工程右键出现Properties,
点击Properties,进入把is library 前的对勾去掉
然后重新运行就ok了。
首先要在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);
首先是准备好按钮不同状态的图片
然后 在res/drawable中定义selectorBtn.xml的xml文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 定义按钮点击时的图片 -->
<item android:drawable="@drawable/btn_focus" android:state_pressed="true"/>
<!-- 定义按钮默认的图片 -->
<item android:drawable="@drawable/btn_default"/>
</selector>
最后Button的background属性中设置
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/selectorBtn"/>
在使用startActivityForResult()和onActivityResult()时,会分别用到requestCode和resultCode,有时候极容易将2个参数混淆起来。
把原来的布局用<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="none"></ScrollView>括起来即可实现视图的滚动。
创建一个属于你自己的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){
...
MyApp appState = ((MyApp)getApplicationContext());
String state = appState.getState();
...
}
}
这个效果就是使用静态变量是一样的,但是其更符合android的架构体系。 使用这种方法的话需要在AndroidManifest.xml中配置一下:
<application android:name=".MyApp"
android:icon="@drawable/icon"
android:label="@string/app_name">