新手学Android 1: 新入门遇到的一些小坑

开发环境早就装好了,一直没有动手去做。今天在这里做个记录,也算是对自己的一个督促。

开发环境:

win7系统,官网下载的adt-bundle-windows,里面包含了eclipse和android SDK,没有用Android Studio 主要考虑目前大多数人用的还是eclipse,遇到问题比较好解决。

1,使用SDKManeger安装api各版本相当的慢。

实际上可以下载或者拷贝对应版本的文件,直接拖到sdk/platforms 目录下。或者在Tools->options 中设置代理服务器,使用国内高校或机构的开源镜像站来安装或更新。

2,使用布局layout的时候,找不到EditText

eclipse默认使用了Android 4.4W版本的api 20,这个是提供给可穿戴设备使用的,里面没有EditText。

换了个低一点的版本,(一般的手机应用,要根据用户群的属性,选择合适的版本)

3,OnClickListener cannot be resolved to a type

btn_login.setOnClickListener(new OnClickListener() {
			
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
				
    }
});    

出现上述错误,原来是因为android版本升级后,将“OnClickListener”接口移到了View类中。

解决方法:将“new OnClickListener”改为“new View.OnClickListener”,或者使用Eclipse自动导入所有相关的java包的快捷键是:“Ctrl+Shift+O”

import android.view.View.OnClickListener;

4,ProgressBar会占用布局的位置

如果你想使用ProgressBar来做loading的状态显示,可能简单的布局实现的效果会不太理想。这里不深究ProgressBar的适用场景,只是简单解决我的问题。

在LinearLayout和RelativeLayout中,ProgressBar在visible的时候,会占用布局中的空间,挤压正常控件位置。使用FrameLayout可以实现,但比较复杂。

如图,按钮被挤到了下一行。简单实现遮罩的loading可以用ProgressDialog,几行代码搞定。

ProgressDialog progress_dialog = new ProgressDialog(MainActivity.this);
pd_login.setMessage("Loading...");
pd_login.show();

感觉android的版本问题,比较混乱,任重而道远,睡觉。

 

posted @ 2015-09-03 23:59  phptree  阅读(230)  评论(0编辑  收藏  举报