- 点击按钮弹出提示对话框:
在按钮监听器中的重载onClick方法里面直接
new AlertDialog.Builder(QuizActivity.this)
.setMessage("You Got A Score Of : "+s)
.setPositiveButton(R.string.sure, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
;
}
}).show();
注意:这里不能用
AlertDialog.Builder builder=new AlertDialog.Builder(this,1);
会报错说不能在监听器中 这样用,我也不知道为啥( ⊙o⊙?)
- 保存状态saveInstanceState.xxx.(KEY,OBJECT),KEY是关键字,OBJECT是保存的对象,KEY是用于恢复OBJECT的,如 :
private short answers[]=new short[LENGTH];
private static final String KEY_ANSWER="answer";
saveInstanceState.putShortArray(KEY_ANSWER,answers);
//保存answers数组
if(savedInstanceState!=null)
{
answers=savedInstanceState.getShortArray(KEY_ANSWER);
}
//恢复answers数组,用于onCreate中或者onRestoreInstanceState()
- 保留小数
double d = 123.456
NumberFormat nf = NumberFormat.getNumberInstance();
// 保留1位小数
nf.setMaximumFractionDigits(1);
// 四舍五入RoundingMode.UP
nf.setRoundingMode(RoundingMode.UP);
System.out.println(nf.format(d));
- 设置app图标
Android→app →manifests→AndroidManifest.xml中修改Application中的icon为 自己的图片资源即可
-
只声明了一个变量如ArrayList<Question> mQuestionBank;
可以将其它返回值为ArrayList<Question>的函数返回值赋给它,但是若是想使用ArrayList的add、addAll等方法则必须初始化,也就是必须将其实例化:ArrayList<Qeustion> mQuesitonBank=new ArrayList<Question>();之后才能使用。 - 想让某段 代码仅仅在某个Activity中执行一次,可设置一个全局变量标识并设置初始值,在oncreate中判断如果该变量仍然是初始值说明 该代码没有执行过,则执行并且改变标识变量值,即达到了让其仅执行一次的效果。
- ArrayList使用的一些坑:
- ArrayList默认创建的容量(size())是0,所以,如果 创建了一个空的ArrayList arr后,直接使用arr.set(int index,value)或者arr.get(int index)时会报数组越界错误,所以,如果仅仅想添加一个值,应该使用arr.add(int index,value),若想设定指定位置的值,则必须将arr初始化:例如,在onCreate中利用循环和一个容量值c,将arr前c个全部初始化为null:
int c=SOME_VALUE; for(int num=0;num<c;num++) { arr.add(num,null); }
- ArrayList的add(int index,value )方法也有坑,先看看以下代码:
import java.util.ArrayList; class Untitled { public static void main(String[] args) { ArrayList <Integer> arr=new ArrayList<Integer>(); arr.add(0,520); arr.add(1,250); arr.add(2,100); arr.add(0,520); arr.add(0,520); arr.add(0,520); for(int i=0;i<arr.size();i++) { System.out.println(arr.get(i)); } } }
这儿只用了只在三个位置用了add,然而,输出结果 却是
520 520 520 520 250 100
可以看到,后面3个语句在位置0处重复add了520, 结果这三个520没有把原先有值的0处替换掉,而是在0位置后面插入了进去,于是 位置1和2的值便被挤到了位置4和5。
-
在两个Activity: A_Activity、B_Activity之间传递一个ArrayList<SOME_CLASS>时 使用
String NAME="SOME STRING"; ArrayList<SOME_CLASS> arraylist={....}; //发送arraylist intent.putExtra(NAME,arraylist); //接收arraylist ArrayList<SOME_CLASS> receive=(ArrayList<SOME_CLASS>)getIntent().getSerializableExtra(NAME);
但是最重要的一点是:ArrayList盛放的这些元素的类SOME_CLASS必须实现Serializable接口,即在定义SOME_CLASS时:
public class SOME_CLASS implements Serializable { ..... }
- RadioButton是放在RadioGroup 中的,当点击了某一个RadioButton后,就代表整个RadioGroup组 状态是已经被选过的了, 要想让其恢复成 没有被选过的 状态,应该使用RadioGroup.clearCheck(),而不 应该用RadioButton.setChecked(boolean)或者RadioButton.setSelected(boolean),那样只是让RadioButton的选中勾消失,而事实上它仍然是选中的。
- 设置某个控件的 颜色:
mTrueButton.setBackgroundColor(Color.parseColor("#8CF390"));
""中是改颜色的html代码