約 4,914,996 件
https://w.atwiki.jp/conn/pages/25.html
ListViewの使用 値の一覧を表示したり、一覧から選択するのに使用する。 予め ScrollViewインタフェースが実装してあり、スクロールを利用して擬似的に Spinnerのような使い方もできる。 使い方 ListViewクラスと ListAdapterインターフェースの実装を組み合わせて使用する。 ちょっと面倒だけど、上手いこと使うとSpinnerよりも快適な使用感を演出してくれる。 ListViewクラスの高さをリストの1アイテム分程度に絞り、スクロールされるたびに表示されているアイテムの選択とみなし、スクロール位置を微調整してやればよい。 必要な処理はこんな感じ 1アイテムの高さを取得 ListViewクラスの高さを設定 スクロールの停止を検知し表示されているアイテムを選択する 選択したアイテムにあわせてスクロール位置を微調整する サンプルコード 配列から Adapterを作成し、ListViewにセットする ListView hoursList = (ListView) findViewById(R.id.HoursListView); Integer[] hours = new Integer[24]; for (int i = 0 ; i 24 ; i++) hours[i] = Integer.valueOf(i); ArrayAdapter Integer hoursAdapter = new ArrayAdapter Integer (this, android.R.layout.simple_list_item_1, hours); hoursList.setAdapter(hoursAdapter); 画面サイズを取得し、そのサイズを使ってリストアイテムの高さを測定 WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); DisplayMetrics metrics = new DisplayMetrics(); display.getMetrics(metrics); View tempView = hoursAdapter.getView(0, null, null); tempView.measure(metrics.widthPixels, metrics.heightPixels); int itemHeight = tempView.getMeasuredHeight(); ListViewの高さをアイテムの高さに合わせる LayoutParams tempLayout = hoursList.getLayoutParams(); tempLayout.height = itemHeight; hoursList.setLayoutParams(tempLayout); ListViewのデフォルト位置を設定し、リスナーをセットする hoursList.setSelection(5); hoursList.setOnScrollListener(this); リスナーを作成。アクティビティを使っている public class MainActivity extends Activity implements OnScrollListener { リスナーのメソッドを実装する public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { //nothing todo } スクロール位置を微調整するよう小細工する public void onScrollStateChanged(AbsListView view, int scrollState) { // TODO 自動生成されたメソッド・スタブ Log.v(TAG, "Scroll State " + scrollState); if (scrollState == SCROLL_STATE_IDLE ) { ListView listView = (ListView)view; View firstShownChilndView = listView.getChildAt(0); int targetPos = listView.getFirstVisiblePosition(); if( itemHeight + firstShownChilndView.getTop() itemHeight / 2) targetPos += 1; if(Build.VERSION.SDK_INT = Build.VERSION_CODES.HONEYCOMB) { listView.smoothScrollToPosition(targetPos); } else { listView.setSelection(targetPos); } } } この例でアプリをエミュレータ上で実行すると、ホイールマウスによるスクロールが onScrollでは検知されるものの、onScrollStateChagedでは検知されず微調整されない。実機では問題ないが、少し気になる。
https://w.atwiki.jp/cataclyj/pages/250.html
このページは更新されていない非公式ビルドのページです。公式ビルドはAndroid版設定ガイドを参考にしてください。 (作成中です) 概要 ダウンロード 操作方法 パソコン版との相違点 概要 Michael Davies 氏による、0.C 開発版を元にした Android 向けの非公式ビルドです。 ダウンロード Google Play のページ 操作方法 パソコン版との相違点
https://w.atwiki.jp/lyokun/pages/45.html
とりあえず、ここを見る ASP.NET 3.5の新しいListViewコントロールを使用するhttp //japan.internet.com/column/developer/20080916/26.html グルーピング ListViewコントロールで表示項目をグルーピングするには?http //www.atmarkit.co.jp/fdotnet/dotnettips/916aspnetlistvwgroup/aspnetlistvwgroup.html
https://w.atwiki.jp/mari8dotnet/pages/44.html
□Tipsデータベース≫コントロール≫ListView [[]] [[]] [[]] [[]] [[]] [[]] [[]] [[]] [[]] [[]] [[]] [[]] [[]] [[]] [[]] [[]] [[]] [[]] [[]] [[]]
https://w.atwiki.jp/pazdra/pages/428.html
Android版情報 起動しない場合の対処法(公式情報) 起動後しばらくすると動作が遅くなる現象の対処法 データインストールについてdocomoの場合(対策の実例) データのバックアップについて(非公式) Kindle Fire版について コメント Android版情報 ダウンロードページはこちら リリース日:2012年9月18日(火) Android 7.0 Nougat ~ 13 対応 iOS版・Android版・Kindle版の垣根を超えてフレンド・助っ人になることが可能 データ移行(引き継ぎ)についてAndroid同士でのデータ移行(引き継ぎ)はアプリVer5.1で可能になりました。 【Android】機種変更に伴うプレイデータの移行(バックアップ)方法 (公式) iOS・Android間でもできます。詳しくはこちら。 起動しない場合の対処法(公式情報) 起動しない場合には、以下をご確認ください ■メーカーが動作を保証しない操作をおこなっておりませんか: パズル&ドラゴンズ対応端末にも関わらず、ツールや特定の操作(ROOT化など)により、 メーカーが動作を保証しない行為をおこなった端末にて、起動しない場合がございます。 ■端末の空き容量が不足しておりませんか: アプリ本体のダウンロード時の空き容量とは別に、保存ファイル用の容量が必要となります。 保存ファイルの作成に空容量が不足している場合がございますので、端末の空き容量を増やして、再度起動してください。 ■端末側のメモリをご確認ください: 同時に多数のアプリを起動している場合には、いったん全て終了した状態でお試しください。 引用元:https //web.archive.org/web/20120922001518/http //mobile.gungho.jp/news/pad/120918_2.html 起動後しばらくすると動作が遅くなる現象の対処法 起動時は動作軽快なのにしばらくするとドロップの移動が遅くなったり重くなったりする場合は以下をご確認ください。機器を再起動する。結局の所、これが一番効果高いです。 スタンバイやホームに戻りたい時は必ずホーム長押しでパズドラを停止させてから戻る。 タスクキル、メモリ、キャッシュ削除などの管理ツールは一時凌ぎの軽さを与えるが返って処理を重くするので使わない。 一度裏で常駐されると復帰に相当な負荷がかかってそのまま高パフォーマンスの状態まで戻らない仕様のようです。パズドラをプレイしていない時は絶対に常駐させないようにしましょう。むやみにスクショを撮るのも負荷がかかるのでやめましょう アプリVer8.7で、「シンプル背景」のオプションが追加されました。メニュー「その他」→「オプション」→「ダンジョン」→「シンプル背景」 ONにすると、全ダンジョンの背景がノーマルダンジョン「旅立ちの塔」の背景になります。 「端末によってプレイ感が向上する可能性があります。」とのこと。(公式より) データインストールについて パズル&ドラゴンズAndroid版では、あらかじめアプリに必要なデータを本体メモリに展開しておくことで、読み込み時間を短縮することができます。 引用元および手順詳細:http //mobile.gungho.jp/news/pad/and_install.html ON推奨。公式の表記通り、ロード時間が短縮される。もっさり感が減り、端末によってはiPhone並の快適さが見込める。 パズドラ本体のアプリアップデートが行われると、データインストールの内容が自動的に更新される。※ただし、更新に失敗した場合はOFFになる。 以前はパズドラ本体のアプリアップデートが行われた際に、自動的にOFFになっていた。 データのバックアップについて(非公式) ※始めに注意点※ パズドラのプレイデータは、サーバーと同期を取っているので、ダンジョン失敗したから元に戻ってやり直し!などの行為は不可能。 「図鑑データとモンスターBOXのお気に入り情報」は同期しないので、復元するとその当時の状態に戻ってしまう。 基本的にはadbコマンドや「Helium」アプリでバックアップ可能。 adbコマンド:詳しくはこちら Helium Kindle Fire版について Kindle Fire・Kindle Fire HDはAmazonのアプリストアで専用のバージョンがリリースされている。 基本的には他の端末と違いはないが、以下のような制約がある。 アップデート時などのメンテナンスは、iOS・Android版は深夜~早朝の数時間で終わるが、Kindle Fire版は 最長24時間 もかかる。ゲリラ・降臨・曜日ダンジョンなどのイベントはそれに配慮されず行われることが多い。 他のバージョンと同程度の時刻でメンテナンスが終わることもあるが、終了時刻はアナウンスされないので、自分で確認する必要がある。 以上の制約があるので、パズドラ目的でKindle Fireを買う・使うのはあまりおすすめできない。 Kindle Fire版推奨端末の一覧は こちら(公式) コメント ※ここに対応機種の要望を書いても無意味ですので、要望は パズドラ公式問い合わせフォーム へどうぞ。 Android固有のバグ(特にメディアプレーヤー周りのバグ)の情報に関しては大歓迎! Android6.0.1のGALAXY S6でやってるけど書いてある通りBGMループが途切れるのと、ドロップの操作音が途切れ途切れになったりスキル使用時の音がたまに出なかったりするね。 -- 2017-02-18 02 52 39 zenfone3だけどコンボ音が時々飛ぶ。それ以外は特に問題ないけど、なんか気持ち悪いなこれ -- 2017-02-22 03 49 33 ↑どうやらAndroid/Kindleにおいて、一部の効果音が正常に再生されない問題があったようです。Ver10.0.1で修正されました。 -- 2017-03-01 13 48 34 zenfon2だが音はV10の音バグは治った BGMループ時の音バグは相変わらずだけど -- 2017-03-03 21 53 58 Android5.1 -- 2017-03-06 03 19 38 ZTE BLADE E01はそもそもパズドラが起動できない -- 2017-03-17 18 38 22 7.1.1では起動するようになってるけど、7.1.2が起動するか確認した人いる?7.1.0から7.1.1のアップデートすら起動しなくなったから心配してる -- 2017-04-11 13 40 06 Nexus 7 (2013) BGMループの瞬間に動作が止まる問題 6.0.1で改善を確認しました。 -- 2017-11-27 08 38 05 ちなみにパズドラのヴァージョンは12.40です。 -- 2017-11-27 08 42 57 Android 9にアップデートしたが問題が2つ発生。1.効果音の音量バランスがおかしくなった。敵スキルの「ピコーン」音と、スクロールバーの音だけがやたらでかい。2.パズドラをバックグラウンドに移すと短時間でタスクキルされる。データ修復や再インストールをしても改善しない。Android 9には一応対応していても、細かい所まで開発の手が届いてないっぽい。 -- 2019-02-09 13 10 12 コメント すべてのコメントを見る
https://w.atwiki.jp/pazudra/pages/11.html
Android版情報 起動しない場合の対処法(公式情報) 起動後しばらくすると動作が遅くなる現象の対処法(非公式確認情報求む) 推奨端末一覧 NTT Docomo au SoftBank その他 データインストールについて 「googleのウォレットアカウントにログインしてからサポートに連絡して下さい」 docomoの場合(対策の実例) データのバックアップについて(非公式) Kindle Fire版について wiki内コミュニティ コメント Android版情報 リリース日 2012年9月18日(火) Android OS2.3 以降の対応機種(最新バージョンのAndroidには対応していない可能性があります。OSバージョンアップの際は ダウンロードページ の表記を確認してください) iOS版・Android版の垣根を超えてフレンド・助っ人になることが可能 データ移行(引き継ぎ)について iOSとAndroid間のデータ移行(引き継ぎ)は現在のところ不可能 Android同士でのデータ移行(引き継ぎ)はバージョン5.1で可能になりました。 【Android】機種変更に伴うプレイデータの移行(バックアップ)方法 (公式) 起動しない場合の対処法(公式情報) 起動しない場合には、以下をご確認ください ■メーカーが動作を保証しない操作をおこなっておりませんか: パズル&ドラゴンズ対応端末にも関わらず、ツールや特定の操作(ROOT化など)により、 メーカーが動作を保証しない行為をおこなった端末にて、起動しない場合がございます。 ■端末の空き容量が不足しておりませんか: アプリ本体のダウンロード時の空き容量とは別に、保存ファイル用の容量が必要となります。 保存ファイルの作成に空き容量が不足している場合がございますので、端末の空き容量を増やして、再度起動してください。 ■端末側のメモリをご確認ください: 同時に多数のアプリを起動している場合には、いったん全て終了した状態でお試しください。 引用元:http //mobile.gungho.jp/news/pad/120918_2.html 起動後しばらくすると動作が遅くなる現象の対処法(非公式確認情報求む) 起動時は動作軽快なのにしばらくするとドロップの移動が遅くなったり重くなったりする場合は以下をご確認ください 機器を再起動する。結局の所、これが一番効果高いです。 スタンバイやホームに戻りたい時は必ずホーム長押しでパズドラを停止させてから戻る。 タスクキル、メモリ、キャッシュ削除などの管理ツールは一時凌ぎの軽さを与えるが返って処理を重くするので使わない。 一度裏で常駐されると復帰に相当な負荷がかかってそのまま高パフォーマンスの状態まで戻らない仕様のようです。 パズドラをプレイしていない時は絶対に常駐させないようにしましょう。むやみにSSを撮るのも負荷がかかるのでやめましょう 推奨端末一覧 公式による 動作確認済みの端末一覧 の転載です。 当初は動作確認した推奨端末以外ではアプリのダウンロード自体が不可能でしたが、11月19日頃より非推奨端末でもダウンロードが可能となりました。 (ただし、「非推奨端末の動作保証はしない」とのことです) NTT Docomo メーカー 機種型番 名称 OS 備考 ソニーモバイル SO-01D Xperia Play 2.3.4(以降対応なし) 9/19追加 ソニーモバイル SO-01C Xperia arc 2.3.2→2.3.3→2.3.4(以降対応なし) 9/21追加 ソニーモバイル SO-02C Xperia acro 2.3.3→2.3.4(以降対応なし) 9/19追加 ソニーモバイル SO-03C Xperia ray 2.3.3→2.3.4(以降対応なし) 9/21追加 ソニーモバイル SO-02D Xperia NX 2.3.7→4.0(予定) . ソニーモバイル SO-03D Xperia acro HD 2.3.7→4.0(予定) . ソニーモバイル SO-04D Xperia GX 4.0.4 . ソニーモバイル SO-05D Xperia SX 4.0.4 . パナソニックモバイル P-02D LUMIX Phone 2.3→4.0(予定) 10/17追加 パナソニックモバイル P-04D P-04D . 11/08追加 パナソニックモバイル P-06D ELUGA V 4.0.4 . パナソニックモバイル P-07D ELUGA power 4.0.4 . LG L-06D Optimus Vu 4.0.4 . LG L-06D L-06D JOJO 4.0.4 . LG L-01D Optimus LTE 2.3.5→4.0.4 . LG L-05D Optimus it 4.0.4 . Samsung SC-02C GALAXY S II 2.3.3→2.3.5→2.3.6→4.0 9/19追加 Samsung SC-04D GALAXY NEXUS 4.0.1→4.0.2→4.0.4→4.1(予定) . Samsung SC-05D GALAXY Note 2.3.6→4.0.4 . Samsung SC-03D GALAXY S II LTE 2.3.6→4.0(予定) . Samsung SC-06D GALAXY S III 4.0.4→4.1(予定) . Samsung SC-05D GALAXY Note . 追加日不明 Samsung SC-06D GALAXY S III . 追加日不明 富士通モバイル T-02D REGZA Phone . 10/26追加 富士通モバイル F-03D ARROWS Kiss 2.3.5 10/09追加 富士通モバイル F-03D Girls F-03D Girls 2.3.5 10/19追加 富士通モバイル F-04E ARROWS V . 13/01/23追加 富士通モバイル F-05D ARROWS X LTE 2.3.5→4.0(予定) 10/09追加 富士通モバイル F-07D ARROWS μ 2.3.5 10/18追加 富士通モバイル F-09D F-09D ANTEPRIMA 4.0.3 . 富士通モバイル F-10D ARROWS X 4.0.3 . 富士通モバイル F-11D ARROWS Me 4.0.3 10/10追加 富士通モバイル F-12C F-12C . 追加日不明 富士通モバイル F-04E ARROWS V 4.0.4. 13/01/10追加 Disney Mobile P-05D Disney Mobile on docomo . 11/09追加 Disney Mobile F-08D Disney Mobile F-08D 2.3→4.0(予定) 10/10追加 シャープ SH-01E SH-01E . 11/09追加 シャープ SH-04D Q-pot.Phone . 11/08追加確認 シャープ SH-06D AQUOS PHONE 2.3.5→4.0.4 10/10追加 シャープ SH-07D AQUOS PHONE st . 11/08追加 シャープ SH-09D AQUOS PHONE ZETA 4.0.4 . シャープ SH-10D AQUOS PHONE sv 4.0.4 . シャープ SH-12C AQUOS PHONE 2.3.3 . シャープ SH-13C AQUOS PHONE f 2.3.4 9/27追加 NECカシオ N-01D MEDIAS PP . 10/26追加 NECカシオ N-04C MEDIAS 2.2→2.3.3 10/18追加 NECカシオ N-05D MEDIAS ES 2.3.6→4.0.4 . NECカシオ N-06C MEDIAS WP 2.3.3 10/17 LG L-01E Optimus G . 11/13追加 PRADA L-02D PRADA phone by LG L-02D . 11/13追加 au メーカー 機種型番 名称 OS 備考 ソニーモバイルコミュニケーションズ IS11S Xperia acro NEW 2.3.3→2.3.4 9/19追加 ソニーモバイルコミュニケーションズ IS12S Xperia acro HD 2.3.7→4.0.4 . ソニーモバイルコミュニケーションズ SOL21 XperiaVL . 11/13追加 Samsung ISW11SC GALAXY S II WiMAX 2.3.6→4.0.4 . Samsung SCL21 GALAXYSⅢ Progre . 11/13追加 シャープ IS11SH AQUOS PHONE IS11SH 2.3.3 9/19追加 シャープ IS12SH AQUOS PHONE IS12SH 2.3.3 10/12追加 シャープ IS13SH AQUOS PHONE IS13SH 2.3.5 10/5追加 シャープ IS14SH AQUOS PHONE IS14SH 2.3.5 9/19追加 シャープ IS15SH AQUOS PHONE SL 4.0.4 . シャープ IS17SH AQUOS PHONE CL 4.0.4 . シャープ ISW16SH AQUOS PHONE SERIE 4.0.4 . シャープ SHL21 AQUOS PHONE SERIE . 11/13追加 シャープ C01 INFOBAR 2.3 9/19追加 富士通モバイル IS11F ARROWS Z ISW11F 2.3.5 10/11追加 富士通モバイル IS12F ARROWS ES 2.3.5 10/09追加 富士通モバイル ISW13F ARROWS Z 4 . 富士通モバイル IS11T REGZA Phone 2.3.4 10/11追加 HTC ISW13HT HTC J 4.0.3→4.0.4 . Kyocera ISW11K DIGNO 2.3.5 . Motorola IS12M Motorola RAZR 2.3.6→4.0.4 9/27追加 NECカシオ IS11CA G zOne 2.3.3 10/11追加 NECカシオ IS11N MEDIAS BR 2.3.5 10/11追加 LG IS11LG Optimus X 2.3.7→4.0(2012年8月10日~) 10/11追加 SoftBank メーカー 機種型番 名称 OS 備考 シャープ 006SH AQUOS PHONE 2.3.3 9/21追加 シャープ 009SH AQUOS PHONETHE PREMIUM 2.3.4 追加10/19 シャープ 101SH AQUOS PHONETHE HYBRID 2.3.5 10/17追加 シャープ 102SH AQUOS PHONE 2.3.5→4.0.4 9/21追加 シャープ 103SH AQUOS PHONE 2.3.5 10/17追加 シャープ 104SH AQUOS PHONE 4.0.3 . シャープ 106SH AQUOS PHONE Xx 4.0.4 . シャープ 107SH PANTONE5 NEW 4.0.4 9/19追加 シャープ 107SH B ボス電 4.0.4 10/17追加 富士通モバイル 101F ARROWS A 4.0.4 . NECカシオ 101N MEDIAS CH 2.3.5 10/18追加 パナソニックモバイル 101P LUMIX Phone 2.3 10/18追加 Kyocera 101K HONEY BEE . 10/26追加 DELL 101DL DELL Streak Pro 2.3.5 . Disney Mobile DM012SH DM012SH 2.3 10/12追加 その他 メーカー 機種型番 名称 OS 備考 SONY SGPT11 Sony Tablet S 3.1→3.2→3.2.1→4.0.3 10/11追加 SONY WALKMAN F NW-F805(806、807) . 11/13追加 ASUS - Google NEXUS 7 4.2 10/5追加 ※ 公式サイト で公表された一覧を加工・転載しています。最新の情報はリンク先でご確認ください。 パズドラ動作環境に適合する主なAndroidタブレット機種 Kindle Fire HD 16GB タブレット 発売日:2012年12月19日 販売元:Amazon 容量:16GB(32GB) ※発売後しばらくパズドラがダウンロード出来ない状態でしたが、2013年1月11日よりダウンロード可能となりました。 → 公式情報 SONY ウォークマン Fシリーズ [メモリータイプ] 16GB ブラック NW-F805/B 発売日:2012年10月20日 メーカー:SONY メーカー型番 NW-F805(806、807) 容量 16GB(32GB、64GB) カラー ブラック、ブルー、ブラックホワイト、ビビッドピンク、ライトピンク 発売日:2012年9月25日(Amazonでの取り扱い開始日2012/10/11) 販売元:Google(製造:ASUS) ソニー Xperia Tablet WiFi Sシリーズ SGPT121 メモリ16GB SGPT121JP/S 発売日:2012年9月15日 メーカー:SONY メーカー型番:SGPT121JP-S 関連情報: パズドラが楽しめる「ソニー製品」はこれだ! + 発売から一定期間が経過している古い機種 データインストールについて パズル&ドラゴンズAndroid版では、あらかじめアプリに必要なデータを本体メモリに展開しておくことで、読み込み時間を短縮することができます。 引用元および手順詳細:http //mobile.gungho.jp/news/pad/and_install.html 「googleのウォレットアカウントにログインしてからサポートに連絡して下さい」 表記のエラーメッセージは、要するに「短期間に使いすぎ」など支払情報に問題・要確認事項がある場合に表示されるようです。 ウォレットの支払い方法を「キャリア決済(携帯代と一緒に支払い)」にしてる場合、キャリアが設定した1ケ月の課金上限に達した (キャリアや利用者の条件により上限は異なり、一例ではdocomoで月1万円まで。条件が合えば上限変更も可能らしい) 同じく「キャリア決済」にしている場合、携帯代の支払いが滞っている、もしくは直近2カ月で滞ったことがある ウォレットの支払い方法を「クレジットカード」にしている場合、指定したカードが使えなくなっている (有効期限が切れている、支払いが滞っている、など) まずはgoogleウォレットにログインして支払方法などを確認してみてください。 情報元:Androidコメント欄の書き込みより docomoの場合(対策の実例) アプリ内の課金を携帯代と一緒に払う「ドコモケータイ払い」に申し込んでいることが大前提になりますが、課金上限の変更はこちらから可能でした http //www.nttdocomo.co.jp/service/convenience/keitai_payment/add/notice.html PCからは課金利用停止のみ変更可、携帯・スマホからは上限変更が可 毎月1日~月末までが課金対象、10月が上限に達した場合は12月から利用可能になるとの回答を、Docomoサポートダイヤル(0120-800-000)から受けています 「ドコモケータイ払い」よくある質問 http //mobico.ne.jp/kinfo/faq.html 情報元:Androidコメント欄の書き込みより データのバックアップについて(非公式) ※始めにADBコマンドおよびTitaniumBackup共通の注意点※ パズドラのプレイデータはサーバーと同期を取っているのでダンジョン失敗したから元に戻ってやり直し!などの行為は不可能。 「図鑑データとモンスターBOXのお気に入り情報」は同期しないので復元するとその当時の状態に戻ってしまう。 Androidのバージョンによってバックアップ方法が違うのでまず下記のどちらかに当てはまるかを確認。 Android バージョン4.0以降の機種はadbコマンドでバックアップ可能。 それ以前のバージョンの機種はroot化してからTitanium Backupでバックアップ可能。 □root化後のバックアップ方法(root化は自己責任です) Titanium BackupをGooglePlayからインストールしてくる。(保存履歴が増えるので有料版推奨) Titanium Backupを起動しバックアップ/リストアのタブからパズドラのアプリケーションを選びバックアップを押す。 復元の場合もパズドラを選択し復元したいデータを選び復元を押す。 ※データ容量削減とバックアップ 復元高速化する方法 バックアップ前にパズドラゲーム内の設定にあるデータインストールを使用している場合はoffにする。 環境設定から通常のアプリ(apk)と保護済アプリ(apk)を外すとデータのみ保存できるので素早くバックアップ 復元ができる。 バックアップ保存データは/sdcard/TitaniumBackup/にあるのでPC等にも保存しておくことをお勧めする。 Kindle Fire版について Kindle Fire・Kindle Fire HDはAmazonのアプリストアで専用のバージョンがリリースされている。 基本的には他の端末と違いはないが、以下のような制約がある。 アップデート時などのメンテナンスは、iOS・Android版は深夜~早朝の数時間で終わるが、Kindle Fire版は 23時間 もかかる。ゲリラ・降臨・曜日ダンジョンなどのイベントはそれに配慮されず行われることが多い。 「ケリ姫スイーツ」との連動イベント(モンスター「ケリ姫」の取得)ができない。 wiki内コミュニティ Android版向け
https://w.atwiki.jp/api_programming/pages/202.html
リストビュー | Android Developers 2つの文字列(AAA#,BBB#)のセットが複数あるときに、これをリストで表示する AAA1 BBB1 AAA2 BBB2 AAA3 BBB3 リストで表示する リストビューをつかう ListView / デフォルトで設定したアイテムを使う レイアウトxml ListView android entry="@array/lvArray" strings.xml string-array name="lvArray" item AAA1 /item item AAA2 /item item AAA3 /item /string-array 動的にアイテムをセットする アダプタクラスを使う。 Adapter | Android Developers 2つの情報を扱う前提なので、SimpleAdapterを使う。 SimpleAdapter | Android Developers マップMapのリストでアイテムの情報を作る。 List Map String, String listMap = new ArrayList Map String, String (); Map String, String map = new Map String, String (); map.put("AAA","AAA1"); map.put("BBB","BBB1"); listMap.add(map); データ元と表示先を結びつける情報(配列)を準備する String[] from = {"AAA","BBB"} int[] to = {android.R.id.text1, android.R.id.text2}; Androidで提供されているリストビュー(android.R.layout.simple_list_item_2)を使う場合。AAA- text1, BBB- text2 を結びつける。 SimpleAdapterを生成する SimpleAdapter adapter = new SimpleAdapter(ThisActivity.this, listMap, android.R.layout.simple_list_item_2, from, to); setAdapterでリストビューに表示させる ListView lvList = (ListView)FindViewById(R.id.dataView); lvList.setAdapter(adapter); setAdapter - ListView | Android Developers リストビューで独自レイアウトを設定する 行の内容のxmlレイアウトファイルを作成する 1行分のレイアウトを記述。この「1行分」をたくさん作って、ListViewにぶら下げていく。 BaseAdapterを継承したクラスを作成する BaseAdapter | Android Developers 4つのメソッドを実装する必要がある。 getCountアイテム数を返す。SimpleAdapterでは、コンストラクタの二つ目の引数で読ませる、ArrayListアイテムの個数(size)を返すことになる。これに対応する関数を作成する。 getCount - Adapter | Android Developers getItemアイテムの位置を受け取って、アイテムを返す。ArrayListであれば、.get(int position) で実装完了。 getItem - Adapter | Android Developers getItemIdアイテムの位置から、そのアイテムに対応するIDを返す。SimpleCursorAdapterでは、DB情報からIDを返すようだが、通常のリストではpositionと同じ値を返すように実装されている。ので、ここでもpositionをそのまま返す。 getItemByID - Adapter | Android Developers getView次項 getViewの実装 イメージとしては、リストのある一行を(作成と?)表示する機能を実装する。Viewの作成には、手作業で作成する方法と、LayoutInflaterをつかって、レイアウトXMLファイルから作成する方法があるが、XMLファイルから作ったほうが簡単。 View v; LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = inflater.inflate(R.layout.row, null); // rox.xml を作っていると仮定 この View(レイアウトXML)の子ビューを、findViewByIdで取得し、ここにsetText(など)で値を設定する。SimpleAdapterでは、これをすでに実装してくれている。 ListView.setAdapterを実行する 結びつけるListViewにsetAdapterを実行することで、ListViewにぶら下げられる。 LayoutInflater | Android Developers ListView の行のカスタマイズ | Android 開発入門
https://w.atwiki.jp/sampleisbest/pages/163.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 Win32 プロジェクト プロジェクト名 ListView アプリケーションの種類 Windows アプリケーション 追加のオプション 空のプロジェクト 文字セット Unicode 注意 元のファイルが失われる恐れがあるので、必要なファイルは必ずバックアップを取ってください。 参考 リストビューの基礎 ListView.cpp // Unicode #include Windows.h #include CommCtrl.h #include sqlext.h #include vector #include string #include "resource.h" #define DRIVER TEXT("Microsoft Text Driver (*.txt; *.csv)") #define DATABASE TEXT("C \\tmp") #define TABLE TEXT("09TOCHIG.CSV") #define TABLE2 TEXT("09TOCHIG_.CSV") // 型定義 struct ColInfo {// 列情報 std wstring strName;// 列名 SQLSMALLINT datatype;// データ型 }; typedef std vector ColInfo VecCI; // 関数プロトタイプ宣言 INT_PTR CALLBACK MainDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); void OnNmDblClk(HWND hDlg, LPARAM lParam); void OnInitDialog(HWND hDlg); void LoadTable(HWND hDlg); void SaveTable(HWND hDlg); BOOL CreateTable(void); BOOL InsertRecord(void); INT_PTR CALLBACK SubDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); void OnSubInitDialog(HWND hDlg); void OnOK(HWND hDlg); // 外部変数構造体 static struct { HINSTANCE hInstance; HWND hList;// リストビュー SQLHENV henv;// 環境ハンドル SQLHDBC hdbc;// 接続ハンドル VecCI vecci;// 列情報 int iItem;// 指定された行 } g; //============================================================================== int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int) { // ODBC環境ハンドルの確保 SQLRETURN rc;// retcode rc = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, g.henv); rc = SQLSetEnvAttr(g.henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); g.hInstance = hInstance; DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, MainDlgProc); SQLFreeHandle(SQL_HANDLE_ENV, g.henv); return 0; } //------------------------------------------------------------------------------ INT_PTR CALLBACK MainDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { INT_PTR nRet = TRUE;// メッセージを処理した switch (uMsg) { case WM_NOTIFY switch (((LPNMHDR)lParam)- idFrom) { case IDC_LIST switch (((LPNMLISTVIEW)lParam)- hdr.code) { case NM_DBLCLK OnNmDblClk(hDlg, lParam); break; } break; } break; case WM_COMMAND switch (LOWORD(wParam)) { case IDC_UPDATE int nr; nr = MessageBox(hDlg, L"CSVファイルを更新しますか?", L"確認", MB_OKCANCEL); if (nr == IDOK) { SaveTable(hDlg); MessageBox(hDlg, L"完了しました。", L"報告", MB_OK); } break; case IDCANCEL EndDialog(hDlg, IDCANCEL); break; } break; case WM_INITDIALOG OnInitDialog(hDlg); nRet = TRUE;// SetFocusでフォーカスを設定した場合はFALSE break; case WM_CLOSE EndDialog(hDlg, 0); break; case WM_DESTROY SQLDisconnect(g.hdbc); SQLFreeHandle(SQL_HANDLE_DBC, g.hdbc); break; default nRet = FALSE;// メッセージを処理しなかった } return nRet; } //------------------------------------------------------------------------------ void OnNmDblClk(HWND hDlg, LPARAM lParam) { LPNMLISTVIEW plv = (LPNMLISTVIEW)lParam; g.iItem = plv- iItem; DialogBox(g.hInstance, MAKEINTRESOURCE(IDD_SUB), hDlg, SubDlgProc); } //------------------------------------------------------------------------------ void OnInitDialog(HWND hDlg) { // リストビュー拡張スタイル g.hList = GetDlgItem(hDlg, IDC_LIST); DWORD dwExStyle = ListView_GetExtendedListViewStyle(g.hList); dwExStyle |= LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES; ListView_SetExtendedListViewStyle(g.hList, dwExStyle); // テーブルの読み込み LoadTable(hDlg); } //------------------------------------------------------------------------------ void LoadTable(HWND hDlg) { SQLHSTMT hstmt;// 命令ハンドル SQLSMALLINT col; SQLSMALLINT n; SQLSMALLINT datatype; SQLTCHAR buf[256]; SQLLEN len; SQLRETURN rc;// retcode // データベースへの接続 rc = SQLAllocHandle(SQL_HANDLE_DBC, g.henv, g.hdbc); rc = SQLDriverConnect(g.hdbc, NULL, (SQLTCHAR *) TEXT("driver={") DRIVER TEXT("}; dbq=") DATABASE, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT); if (!SQL_SUCCEEDED(rc)) { return; } // 検索 rc = SQLAllocHandle(SQL_HANDLE_STMT, g.hdbc, hstmt); rc = SQLExecDirect(hstmt, (SQLTCHAR *) TEXT("select * from ") TABLE, SQL_NTS); if (!SQL_SUCCEEDED(rc)) { return; } // 列情報 LV_COLUMN lvCol; lvCol.mask= LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; lvCol.fmt= LVCFMT_LEFT; lvCol.cx= 100; rc = SQLNumResultCols(hstmt, col); g.vecci.reserve(col); for (n = 0; n col; n++) { rc = SQLDescribeCol(hstmt, n+1, buf, _countof(buf), NULL, datatype, NULL, NULL, NULL); lvCol.pszText= buf; lvCol.iSubItem= n; ListView_InsertColumn(g.hList, n, lvCol); // 列情報 ColInfo ci; ci.strName= buf; ci.datatype= datatype; g.vecci.push_back(ci); // Text 12 SQL_VARCHAR // Byte -6 SQL_TINYINT } // 行情報 LV_ITEM lvItem; lvItem.mask= LVIF_TEXT; lvItem.iItem= 0; while (1) { rc = SQLFetch(hstmt); if (rc == SQL_NO_DATA) break; if (rc == SQL_ERROR) break; for (n = 0; n col; n++) { SQLGetData(hstmt, n+1, SQL_C_TCHAR, buf, _countof(buf), len); lvItem.pszText= buf; lvItem.iSubItem= n; if (n == 0) { ListView_InsertItem(g.hList, lvItem); } else { ListView_SetItem(g.hList, lvItem); } } lvItem.iItem++; } SQLFreeHandle(SQL_HANDLE_STMT, hstmt); } //------------------------------------------------------------------------------ void SaveTable(HWND hDlg) { // テーブルの作成 if (CreateTable() == FALSE) { MessageBox(hDlg, L"テーブルの作成に失敗しました。", NULL, MB_OK); return; } // レコードの挿入 if (InsertRecord() == FALSE) { MessageBox(hDlg, L"レコードの挿入に失敗しました。", NULL, MB_OK); return; } // CSVファイルの削除とリネーム TCHAR szOld[MAX_PATH]; TCHAR szNew[MAX_PATH]; swprintf_s(szOld, L"%s\\%s", DATABASE, TABLE); swprintf_s(szNew, L"%s\\%s", DATABASE, TABLE2); BOOL br; br = DeleteFile(szOld); br = MoveFile(szNew, szOld); if (br == FALSE) { MessageBox(hDlg, L"CSVファイルのリネームに失敗しました。", NULL, MB_OK); } } //------------------------------------------------------------------------------ BOOL CreateTable(void) { TCHAR stmttext[512]; SQLHSTMT hstmt;// 命令ハンドル SQLRETURN rc;// retcode rc = SQLAllocHandle(SQL_HANDLE_STMT, g.hdbc, hstmt); // テーブルの削除 wcscpy_s(stmttext, L"drop table "); wcscat_s(stmttext, TABLE2); rc = SQLExecDirect(hstmt, stmttext, SQL_NTS); // 失敗してもテーブルの作成が成功すれば問題ない // テーブルの作成 wcscpy_s(stmttext, L"create table "); wcscat_s(stmttext, TABLE2); wcscat_s(stmttext, L"("); VecCI iterator it = g.vecci.begin(); while (TRUE) { wcscat_s(stmttext, (*it).strName.c_str()); switch ((*it).datatype) { case SQL_VARCHAR wcscat_s(stmttext, L" Text"); break; case SQL_TINYINT wcscat_s(stmttext, L" Byte"); break; } if (++it == g.vecci.end()) { break; } wcscat_s(stmttext, L","); } wcscat_s(stmttext, L")"); rc = SQLExecDirect(hstmt, stmttext, SQL_NTS); SQLFreeHandle(SQL_HANDLE_STMT, hstmt); return SQL_SUCCEEDED(rc); } //------------------------------------------------------------------------------ BOOL InsertRecord(void) { SQLHSTMT hstmt;// 命令ハンドル SQLRETURN rc;// retcode BOOL bRet = TRUE; rc = SQLAllocHandle(SQL_HANDLE_STMT, g.hdbc, hstmt); int nColNum = g.vecci.size(); int nRowNum = ListView_GetItemCount(g.hList); for (int nRow = 0; nRow nRowNum; nRow++) { TCHAR stmttext[512]; wcscpy_s(stmttext, L"insert into "); wcscat_s(stmttext, TABLE2); wcscat_s(stmttext, L" values ("); for (int nCol = 0; ; ) { TCHAR szBuf[256]; ListView_GetItemText(g.hList, nRow, nCol, szBuf, _countof(szBuf)); switch (g.vecci[nCol].datatype) { case SQL_VARCHAR wcscat_s(stmttext, L" "); wcscat_s(stmttext, szBuf); wcscat_s(stmttext, L" "); break; case SQL_TINYINT wcscat_s(stmttext, szBuf); break; } if (nColNum = ++nCol) { break; } wcscat_s(stmttext, L","); } wcscat_s(stmttext, L")"); rc = SQLExecDirect(hstmt, stmttext, SQL_NTS); if (!SQL_SUCCEEDED(rc)) { bRet = FALSE; break; } } SQLFreeHandle(SQL_HANDLE_STMT, hstmt); // トランザクション終了 rc = SQLEndTran(SQL_HANDLE_ENV, g.henv, SQL_COMMIT); return bRet; } //============================================================================== INT_PTR CALLBACK SubDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { INT_PTR nRet = TRUE;// メッセージを処理した switch (uMsg) { case WM_COMMAND switch (LOWORD(wParam)) { case IDOK OnOK(hDlg); EndDialog(hDlg, IDOK); break; case IDCANCEL EndDialog(hDlg, IDCANCEL); break; } break; case WM_INITDIALOG OnSubInitDialog(hDlg); nRet = TRUE;// SetFocusでフォーカスを設定した場合はFALSE break; case WM_CLOSE EndDialog(hDlg, 0); break; default nRet = FALSE;// メッセージを処理しなかった } return nRet; } //------------------------------------------------------------------------------ void OnSubInitDialog(HWND hDlg) { int nFieldNum = g.vecci.size(); for (int n = 0; n nFieldNum; n++) { int y = 8 + 28 * n; TCHAR szBuf[256]; ListView_GetItemText(g.hList, g.iItem, n, szBuf, _countof(szBuf)); DWORD dwStyle = (g.vecci[n].datatype == SQL_TINYINT) ? ES_NUMBER 0; CreateWindow(L"static", g.vecci[n].strName.c_str(), WS_CHILD | WS_VISIBLE, 8, y, 192, 24, hDlg, (HMENU)IDC_STATIC, g.hInstance, 0); CreateWindowEx(WS_EX_CLIENTEDGE, L"edit", szBuf, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL | dwStyle, 208, y, 192, 24, hDlg, (HMENU)(IDC_FIELD + n), g.hInstance, 0); } } //------------------------------------------------------------------------------ void OnOK(HWND hDlg) { int nFieldNum = g.vecci.size(); for (int n = 0; n nFieldNum; n++) { TCHAR szBuf[256]; GetDlgItemText(hDlg, IDC_FIELD + n, szBuf, _countof(szBuf)); ListView_SetItemText(g.hList, g.iItem, n, szBuf); } } resource.h #define IDD_MAIN100 #define IDD_SUB101 #define IDC_STATIC-1 #define IDC_LIST1000 #define IDC_UPDATE1001 #define IDC_FIELD1100 ListView.rc // resource script #include windows.h #include "resource.h" //------------------------------------------------------------------------------ IDD_MAIN DIALOGEX 100, 100, 320, 200 STYLE WS_POPUPWINDOW | WS_MINIMIZEBOX EXSTYLE WS_EX_APPWINDOW CAPTION "ListView" FONT 9, "MS Pゴシック" BEGIN CONTROL"",IDC_LIST,"SysListView32", WS_BORDER | WS_TABSTOP | LVS_REPORT,8,8,304,160 PUSHBUTTON"更新",IDC_UPDATE,212,176,48,16 PUSHBUTTON"終了",IDCANCEL,264,176,48,16 END //------------------------------------------------------------------------------ IDD_SUB DIALOG 100, 100, 320, 400 STYLE WS_POPUPWINDOW CAPTION "SubDlg" FONT 9, "MS Pゴシック" BEGIN DEFPUSHBUTTON"OK",IDOK,212,376,48,16 PUSHBUTTON"Cancel",IDCANCEL,264,376,48,16 END
https://w.atwiki.jp/frostar/pages/89.html
ListViewを使いやすくするためのライブラリです。 詳しい内部の説明などはここも参照。 使用方法 ヘッダファイルをインクルードして、ライブラリをリンクしてお使いください。 ソースコードも同梱されているので、改変などにお役立てください。 更新履歴 2013/11/16 カラム固定、チェックボックスの使用可・不可切り替え機能追加、ヘッダから余分な関数を削除 Reference void ListViewEx_Init(HWND hList); リストビューをListViewExで使うための初期化を実行します。 ListViewEx系の命令を呼ぶ前に必ず実行してください。 hList 対象となるListViewのハンドル void ListViewEx_OwnerDraw(LPDRAWITEMSTRUCT lpDraw) 対象となるListViewの親のプロシージャでWM_DRAWITEMが来たときにこの命令を呼んでください。 lpDraw WM_DRAWITEMのlpを引き渡す(LPDRAWITEMSTRUCTへのキャストが必要) void ListViewEx_SetColumnString(HWND hWnd,int iCol,int cx,LPSTR str) ListViewのカラムに項目をセットします。 hWnd 対象のListViewのハンドル iCol セットする位置 cx 左端からのマージン str 項目の文字列 void ListViewEx_SetItemString(HWND hWnd,int iItem,int iSubItem,int cx,LPSTR str,BOOL checkbox); ListViewの任意の位置にアイテムをセットします。 hWnd 対象のListViewのハンドル iItem アイテムの列 iSubItem アイテムの行 cx 左端からのマージン str 項目の文字列 checkbox そのアイテムにチェックボックスをつけるかどうか void ListViewEx_ColumnFix(HWND hList,bool isFix) カラムのサイズ変更を禁止するかどうかを設定します。 hWnd 対象のListViewのハンドル isFix (true 禁止、false 許可) void ListViewEx_DeleteAllItems(HWND hWnd) すべてのアイテムを削除します。 hWnd 対象のListViewのハンドル BOOL ListViewEx_GetCheckState(HWND hList,int iItem,int iSubItem) アイテムごとに設定されたチェックボックスの状態を取得します。 hList 対象のListViewのハンドル iItem アイテムの列 iSubItem アイテムの行 void ListViewEx_SetCheckState(HWND hList,int iItem,int iSubItem,BOOL check) アイテムごとにチェックボックスの状態を設定します。 hList 対象のListViewのハンドル iItem アイテムの列 iSubItem アイテムの行 check (true on、false off) void ListViewEx_CheckEnable(HWND hList,int iItem,int iSubItem,BOOL fEnable) チェックボックスの使用不可・使用可能の切り替えを行います。 hList 対象のListViewのハンドル iItem アイテムの列 iSubItem アイテムの行 fEnable (true 使用可、false 使用不可) ダウンロード
https://w.atwiki.jp/binary/pages/6.html
ListViewコントロール http //members.jcom.home.ne.jp/1213687801/cs/windowsforms/treelistview.html