編輯:高級開發
一、常規對話框
public static class MyDialogFragment extends DialogFragment {
int mNum;
static MyDialogFragment newInstance(int num) {
MyDialogFragment f = new MyDialogFragment();
Bundle args = new Bundle();
args.putInt("num", num);
f.setArguments(args);
return f;
}
下面是Fragment的onCreate方法,需要注意的是,設置布局不在這裡,和Activity有些不同。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mNum = getArguments().getInt("num");
int style = DialogFragment.STYLE_NORMAL, theme = 0;
switch ((mNum-1)%6) {
case 1: style = DialogFragment.STYLE_NO_TITLE; break;
case 2: style = DialogFragment.STYLE_NO_FRAME; break;
case 3: style = DialogFragment.STYLE_NO_INPUT; break;
case 4: style = DialogFragment.STYLE_NORMAL; break;
case 5: style = DialogFragment.STYLE_NORMAL; break;
}
switch ((mNum-1)%6) {
case 4: theme = android.R.style.Theme_Light; break;
case 5: theme = android.R.style.Theme; break;
}
setStyle(style, theme);
}
在Fragment設置布局在onCreateVIEw中,使用inflater可以映射一個XML方式布局的layout文件。
@Override
public View onCreateView(LayoutInflater inflater, VIEwGroup container,
Bundle savedInstanceState) {
VIEw v = inflater.inflate(R.layout.fragment_dialog, container, false);
View tv = v.findVIEwById(R.id.text);
((TextVIEw)tv).setText("Dialog #" + mNum + ": using style "
+ getNameForNum(mNum));
Button button = (Button)v.findVIEwById(R.id.show);
接上頁
button.setOnClickListener(new OnClickListener() {
public void onClick(VIEw v) {
((FragmentDialog)getActivity()).showDialog(); //顯示fragmentdialog
}
});
return v;
}
}
上面的showDialog方法在Activity中的定義如下:
void showDialog() {
mStackLevel++;
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment prev = getFragmentManager().findFragmentByTag("dialog");
if (prev != null) {
ft.remove(prev);
}
ft.addToBackStack(null);
DialogFragment newFragment = MyDialogFragment.newInstance(mStackLevel);
newFragment.show(ft, "dialog");
}
二、警告對話框,類似AlertDialog
public static class MyAlertDialogFragment extends DialogFragment {
public static MyAlertDialogFragment newInstance(int title) {
MyAlertDialogFragment frag = new MyAlertDialogFragment();
Bundle args = new Bundle();
args.putInt("title", title);
frag.setArguments(args);
return frag;
}
這裡android開發網提示大家,下面重寫了onCreateDialog方法,而不是onCreateVIEw,希望大家注意:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
int title = getArguments().getInt("title");
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.alert_dialog_icon)
.setTitle(title)
.setPositiveButton(R.string.alert_dialog_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((FragmentAlertDialog)getActivity()).doPositiveClick();
}
}
)
.setNegativeButton(R.string.alert_dialog_cancel,
new DialogInterface.OnClickListener() {
接上頁
public void onClick(DialogInterface dialog, int whichButton) {
((FragmentAlertDialog)getActivity()).doNegativeClick();
}
}
)
.create();
}
}
顯示Alert的Fragment類似AlertDialog,下面是Activity中使用的showDialog的實現代碼,如下
void showDialog() {
DialogFragment newFragment = MyAlertDialogFragment.newInstance(
R.string.alert_dialog_two_buttons_title);
newFragment.show(getFragmentManager(), "dialog");
}
public void doPositiveClick() {
// Do stuff here.
Log.i("FragmentAlertDialog", "Positive click!");
}
public void doNegativeClick() {
// Do stuff here.
Log.i("FragmentAlertDialog", "Negative click!");
}
如果你不了解Fragment,可以查看android Fragment使用詳解一文
數據庫支持每個應用程序無論大小的生命線,除非你的應用程序只處理簡單的數據,那麼就需要一個數據庫系統存儲你的結構化數據,android使用SQLite數據庫,它是一個開源
編者按:在人們的印象中,Windows系統通常只是運行於系統顯示“我的電腦”上的磁盤(手機內存)擴展運用:以Windows 98作為例子,在進入到系統後,可以通過添加磁
Next,接受其中的協議,最後會自動安裝。 四、下載 android SDK 下載Android SDK 選擇 android-sdk_r10-Windows.zi
android 包括了一個核心庫,該核心庫提供了Java編程語言核心庫的大多數功能,android手機服務是一種全新的系統,它與Linux的距離,比Mac OS與Lin