読者です 読者をやめる 読者になる 読者になる

UI 改善

TODO 列挙。

  • アイコン作らないと
  • タイトルの文言がアレ
  • カードのレイアウト
  • 上手に cache したい件
  • start/stop な dialog って cancel 必要
  • 新規作成も同様
  • README ががが
  • dialog 出してて縦横の再描画で落ちる

とりあえず

オチる問題は対処しないと微妙。どうもデフォルトコンストラクタが未定義なのが原因なのかどうか。や、クラス定義を諸々の事情で static ではなくしたのが原因らしい。
呼び出し元な Fragment のインスタンスメソドを呼び出したいのですが、どうしたものか。

色々確認したところ

{get, set}TargetFragment を使いなさい、というソレが多いので採用。以下なカンジの interface を定義して

public interface IVMListFragment {
	public void kickoff(final boolean b, final int i);
}

DialogFragment の定義が以下なカンジ。

    public static class AddDialog extends DialogFragment {
        public AddDialog() {}
        public AddDialog(IVMListFragment obj) {
            setTargetFragment((Fragment)obj, 0);
        }
        
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
                AlertDialog.Builder Builder = new AlertDialog.Builder(getActivity());
                Builder.setTitle("Add New Item");
                Builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        dialog.dismiss();
                        IVMListFragment obj = (IVMListFragment)getTargetFragment();
                        obj.kickoff(true, 0);
                    }
                });
                Builder.setCancelable(true);

                return Builder.create();
        }

一応ですが、画面回転は無問題です。コンストラクタにはそれを使ってる Fragment を渡してます。interface も実装してます。

それ以外も

とりあえず Issue を発行。簡単なのはヤッツケておくなど。あと、cache が云々、ってのは何となく無理そう。