wait等待某个条件发生,而改变这个条件超出了当前方法的控制能力,常由另一个任务来改变。而notify和notifyAll则表示感兴趣的事件发生了,于是唤醒wait之后动作执行。
想让Android的Spinner+Adapter也能像ListView+Adapter那样自由适配任意(信息)列表数据,直接继承ArrayAdapter或BaseAdapter的方法来重写Adapter是不行的,必须实现Android提供的SpinnerAdapter接口来定制Spinner的Adapter才能达到所需效果。
在AlertDialog中加入布局后,发现数据验证无论通过与否,点了AlertDialog提供的按钮后总是退出。如何使数据在校验未成功的时候hold住AlertDialog呢?网友提供了一种可行方法:
final Builder dialog = new AlertDialog.Builder(mContext);
...
LayoutInflater inflater = LayoutInflater.from(mContext);
View layout = inflater.inflate(R.layout.tsm_person_info, null);
final EditText nameText = (EditText) layout.findViewById(R.id.editText1);
final EditText cardIdText = (EditText) layout.findViewById(R.id.editText2);
final EditText phoneText = (EditText) layout.findViewById(R.id.editText3);
...
dialog.setView(layout);
dialog.setNeutralButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String name = nameText.getText().toString().trim();
String idCard = cardIdText.getText().toString().trim();
String phone = phoneText.getText().toString().trim();
if (name.equals("") || idCard.equals("") || phone.equals("")) {
holdDialog(dialog, false); //校验不通过界面保持
return;
}
holdDialog(dialog, true); //allow exit
}
});
dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(mContext, "未进行个人化处理!", Toast.LENGTH_SHORT).show();
holdDialog(dialog, true);//allow exit
}
});
/**
*界面保持开关
* @param dialog
*/
private void holdDialog(DialogInterface dialog, boolean flag) {
try {
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, flag);
} catch (Exception e) {
e.printStackTrace();
}
}
public void showAsPassword(show) {
if (show) {
passEdit.setInputType(0x90);
} else {
passEdit.setInputType(0x81);
}
}
在Manifist文件中,对Activity添加一项theme的属性,值为@android:style/Theme.Dialog就能将Activity以对话框形式显示。例如:
1、安装apk
String dirPath = "/data/data/" + getPackageName() + "/files/test.apk"; //文件需有可读权限
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + filePath), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
少思虑以养心气,寡色欲以养肾气。
常运动以养骨气,戒嗔怒以养肝气。
薄滋味以养胃气,省语言以养神气。
多读书以养胆气,顺时令以养元气。
曾看过这么一句话:“做一个工程师(Enginner or Programdesigner),而不仅是一个程序工人(Code Typist)”。