文章标题

知识点

textview一些属性:

(1)textAppearance系统自带的文字外观设置及实际显示效果图
android:textAppearance=“?android:attr/textAppearanceSmall”
?如果有这种外观设置的话则使用刚才写上去的外观设置,没有则使用系统默认的外观设置。
(2)android:digits设置允许输入哪些字符
android:digits=“1234567890.+-*/% ()”
(3)android:ellipsize设置当文字过长时,该控件该如何显示。
”start”—?省略号显示在开头;”end” ——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动)
textview属性链接

windowSoftInputMode

AndroidManifest.xml文件中界面对应的中添加,主要用来解决
(1)当界面有控件焦点产生,软键盘是隐藏还是显示
(2)如何显示软键盘的大小,如何减少活动主窗口大小以便腾出空间放软键盘
stateUnspecified:软键盘的状态并没有指定。当有获得焦点的输入框的界面有滚动的需求的时候,会自动弹出软键盘
stateUnchanged:软键盘将一直保持和上一个activity里的状态,隐藏还是显示
stateHidden:软键盘不自动弹出来,隐藏
stateAlwaysHidden:当activity主窗口获取焦点时,软键盘也总是被隐藏的
stateVisible:软键盘会自动弹出来
stateAlwaysVisible:软键盘总是显示的状态
adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示。没有滑动控件的布局,界面的标题栏和布局被软键盘顶上去了,跟adjustResize的最大区别
adjustResize:调整屏幕的大小以便留出软键盘的空间,无论是否有滑动控件,界面的标题栏和布局都没有被软键盘顶上去
adjustPan:当前activity的内容自动移动,移动到的位置使得当前获得焦点的控件不被键盘覆盖,用户也能看到输入内容的部分
windowSoftInputMode

transient关键字

实现Serilizable接口,关键字标记的字段不参与序列化过程,这个字段的生命周期仅存于调用者的内存中而不会写到磁盘里持久化,比如密码,有时候我们不需要将它在网络操作中被传输。

setCompoundDrawables

setCompoundDrawablesWithIntrinsicBounds 可以在上、下、左、右设置图标,如果不想在某个地方显示,则设置为null。图标的宽高将会设置为固有宽高,既自动通过getIntrinsicWidth和getIntrinsicHeight获取

setCompoundDrawables 也可以在上、下、左、右设置图标,如果不想在某个地方显示,则设置为null。但是Drawable必须已经setBounds(Rect)。意思是你要添加的资源必须已经设置过初始位置、宽和高等信息
这个方法要先给Drawable设置setBounds(x,y,width,height);

errors

(1)解决跟微信聊天界面一样,点击edittext,listview被压缩并显示最新一条数据
设置listView中android:transcriptMode=”normal” ,activity中设置adjustResize这样每次进入界面后,效果和微信一模一样了,listView被压缩,tittle也不会移出屏幕,并且listView显示最新一条数据
(2)ProgressDialog控件的时候,加下这个属性ProgressDialog.setCanceledOnTouchOutside(false);,防止4.0系统出问题。就是在loading数据的时候,如果你触摸屏幕其它区域,progressDialog消失,然后可能出现崩溃问题
(3)布局中的是大写的V
(4)cannot be cast to android.widget.HeaderViewListAdapter
用到RefreshLayout 出现HeaderViewListAdapter转换异常时的解决方案:

 View headerView = LayoutInflater.from(activity_refresh.this).inflate(R.layout.listview_footer, null);

        if (refreshListview.getFooterViewsCount() == 0) {
            refreshListview.addFooterView(headerView);
        }
        refreshListview.setAdapter(adapter);
        // 添加只是为了在ListView的setAdapter方法时将Adapter包装成HeaderViewListAdapter。因此并不需要footer,因此添加后再移除,
        refreshListview.removeFooterView(headerView);

addHeaderView(view)和addFooterView(view)方法要在ListView.setAdapter(adapter)之前执行,看setAdapter()源码,包装成啦HeaderViewListAdapter

public void setAdapter(ListAdapter adapter) {  
    .....  
    if (mHeaderViewInfos.size() > 0|| mFooterViewInfos.size() > 0) {  
        mAdapter = new HeaderViewListAdapter(mHeaderViewInfos, mFooterViewInfos, adapter);  
    } else {  
        mAdapter = adapter;  
    }  
       .....  
}  

(5)如果一个activity要返回数据到启动它的那个activity,可以调用setResult()方法。
按BACK键从一个Activity退出来的,一按BACK,android就会自动调用Activity的finish()方法,然后设置resultCode为RESULT_CANCELED,也就不会返回任何数据了 .解决方法就是在Activity里面捕获按BACK的事件,捕获到之后先setResult,然后自己来调用finish,就搞定了,把BACK事件直接自己给吞了
(6)swipeRefreshLayout设置进度动画的颜色资源用的方法是swipeRefreshLayout .setColorSchemeResources(Constance.colors); 而不是swipeRefreshLayout.setColorSchemeColors(Constance.colors);
(7)InputEventReceiver: Exception dispatching input event
适配器里少一个convertview.settag(viewholder);
(8)“Binary XML file line # : Error inflating class”
引用类名问题:看清楚layout中引用的view的全名是不是正确
(9)android.content.res.Resources$NotFoundException: String resource ID #0x1
发生在的Toast.makeText(),textView.setText之类的函数,这种函数通常有几个重载,如:
textView.setText(CharSequence text);
textView.setText(int resId);
如果不小心将一个int值传给了它,那它不会显示该int值,而是跑到工程下去找一个对应的resource的id,当然是找不到的,于是就报错啦。
解决办法:
如果要显示该int值,就要将int转化成String或者CharSequence,在该int值后面+”“,强制转为String。
(10)数组越界:错在这里
public int getChildrenCount(int i) {
return itemTotels[i].length;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值