写点什么

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

发布于: 2021 年 11 月 07 日



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


<uses-permission android:name="android.permission.INTERNET" />写法类似这样 具体缺少哪个权限 改成对应的名字就好




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" >


</ImageView>


</LinearLayout>


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 设置样式的方法。




《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码




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


然后 在 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"/>


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"></ScrollView>括起来即可实现视图的滚动。


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){?


...?

评论

发布
暂无评论
Android常见问题及开发经验总结(一)