[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 12/28 01:11 / Filesize : 35 KB / Number-of Response : 118
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Androidプログラミング質問スレ Part28



1 名前:デフォルトの名無しさん [2012/12/23(日) 21:20:54.50 ]
このスレではAndroidSDK・NDKやAndroidマーケットに関する質問を扱ってます。

※プログラミング自体が初めて!なあなたには↓↓↓こちらへ
スレ立てるまでもない質問はここで 123匹目
toro.2ch.net/test/read.cgi/tech/1355011916/
Eclipse統合M33【Java/C++/Ruby/Python/Perl】
toro.2ch.net/test/read.cgi/tech/1340974518/
★★Java質問・相談スレッド158★★
toro.2ch.net/test/read.cgi/tech/1353647661/

****関連リンク****
■ Android developers developer.android.com/
■ ソフトウェア技術ドキュメントを勝手に翻訳 www.techdoctranslator.com/

****前スレ****
Androidプログラミング質問スレ Part27
toro.2ch.net/test/read.cgi/tech/1354001729/

75 名前:デフォルトの名無しさん mailto:sage [2012/12/26(水) 18:34:33.36 ]
>>74
「俺の手を動かすのが面倒だから
 お前らが俺の兵隊となって、結果だけ教えろ」

ということ?すげーな。

76 名前:デフォルトの名無しさん mailto:sage [2012/12/26(水) 19:08:51.84 ]
DatePickerのウィジェットを置いたAlertDialogを作成しています。
DatePickerDialogではありません。

DatePickerのウィジェットの下に
[+5日][−5日] ボタンを設置し、
日付を設定する操作性を高めようとしています。

が、DatePickerに対して日付をset する関数が見当たりません。
無理なんでしょうか?

77 名前:デフォルトの名無しさん mailto:sage [2012/12/26(水) 19:17:13.95 ]
>>74
というかその程度の違いも想像つかないならDBなんか使わずに素直にテキスト使っとけ

78 名前:デフォルトの名無しさん mailto:sage [2012/12/26(水) 19:29:42.29 ]
>>76
DatePicker#updateDate は?

79 名前:72 mailto:sage [2012/12/26(水) 20:47:12.50 ]
STATUS_SUCCESSFUL→STATUS_FAILEDの流れの対策をしていましたが
実はSTATUS_SUCCESSFULの時点ではファイルの存在もありファイルサイズも満タンで
STATUS_FAILEDのERROR_CANNOT_RESUME onReceiveが来た時にファイルは消されてしまうという…
4.0でも同じでした 一体この現象と仕様は…

80 名前:76 mailto:sage [2012/12/26(水) 21:30:50.03 ]
>>78
ありがとうございます。
DatePicker#set***
などばかり探していました。

81 名前:デフォルトの名無しさん mailto:sage [2012/12/26(水) 21:42:14.34 ]
>>75
そのように思われたのなら謝罪します、申し訳ありません。
私は「過去に私と同じ事で悩み検証した結果が残っているようでしたらご指南下さい」
と伝えたかっただけです、初めからそう書けばよかったですね申し訳ないです。

82 名前:デフォルトの名無しさん mailto:sage [2012/12/26(水) 22:40:40.45 ]
>>59
私がって主語が省略されてるのは、アメリカ人にもわかったぞ。

83 名前:デフォルトの名無しさん mailto:sage [2012/12/26(水) 22:58:29.89 ]
>>81
プログラム初心者のファイル操作よりsqliteのほうが速いと思うよ



84 名前:デフォルトの名無しさん mailto:sage [2012/12/26(水) 23:07:31.36 ]
DBの効用も知らない初心者のDB操作も恐ろしい気がするが

85 名前:デフォルトの名無しさん mailto:sage [2012/12/26(水) 23:55:21.46 ]
>>82
お前、凄いな
こんなにも会話が出来ない人がいるなんて驚きだ

86 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 00:01:58.64 ]
Androidにインストールされている「ダウンロード」というアプリでは
失敗したダウンロードリクエストを再試行させる事が出来るのですが
自作アプリ側からDownloadManager.enqueueから受けたIDを利用して
同様の操作をする事はできないのでしょうか?

87 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 00:06:22.08 ]
>>75
おまえらはそのためにいるからな

88 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 01:04:45.27 ]
>>85
お前ら小学生かよw

89 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 02:03:20.09 ]
ttp://epcan.us/s/12261002003/ep838977.jpg

90 名前:0 ◆SeZffd6X/Q mailto:sage [2012/12/27(木) 03:11:13.50 ]
>>74
Androidでは実験したことないのでWindowsでの体験でいいだろうか?

[ テキストファイル保存型の場合 ]
次のように1行のデータサイズ合計が24byteで固定されている場合
|No[4byte]|名前[20byte]|メモ[20byte]|死亡フラグ[1byte]|
10000行目のデータがほしい時はファイルシークを24(byte)×10000(行)すれば
一瞬にして目的のデータにたどり着けるので問題はありませんね?

今度は1行のデータサイズが「名前」「メモ」のデータは文字数が時と場合によってランダムでかわり
決定できないようなデータの場合
|No[4byte]|名前[不確定byte]|メモ[不確定byte]|死亡フラグ[1byte]|
10000行目のデータがほしい時は、基本的にforループを10000回まわして探しにいかないとダメになります
(「カーソルをまわすやりかた」とか言われてます)

SQLの場合、後者も前者と同じように扱え、基本的に1秒以内に完了します。
またNo0〜No10000までの死亡フラグを全て「生存(false)」から「死亡(true)」に変更したくなったとします。
これをカーソルまわしでやると、やはりfor10000ループが必要になりますが
SQLの場合「update 死亡=true where 死亡=false」のようなコマンド1行で(例えです)行え、やはり1秒以内に完了します。

速度面の違いのほかにも、SQLにはテキストファイルより優れた機能がたくさんあります。
例えば、アプリでプロフィール変更機能などを実現しようとした時に、
50箇所くらいデータを変更したが、やっぱり取り消したいという事がありえます。
テキスト保存型だと、この機能を実装するのは煩わしいです
保存用テキストの他に作業用テキスト(一時ファイル)を用意し、
最終決定字に一時ファイルの内容を本ファイルへ一気に保存していく。
SQLではキャンセルコマンド1行でこれを実現できます。ロールバック機能といいます。
その1つの「ロールバック機能」は、
たとえば、

91 名前:0 ◆SeZffd6X/Q mailto:sage [2012/12/27(木) 03:33:54.67 ]
後半2行「その1つの「ロールバック機能」は、たとえば、」はミスです。

>>74
その他、SQLの代表的な便利機能として「リレーションシップ」などもあります。
テキスト型で行っているときに、管理のしやすさから、なるべく全てのデータを1ファイルにまとめて記録しようと考えます。
しかし1人のデータ=1行すべて収めるやり方だと
「キャラクター名(10byte)だけ取得」したいのに、まったく不必要なデータが後ろに100kbyte余計に取得してしまったりなど無駄が出てきます
(いったん1行分まるまる変数に読み込み、その後「名前」だけ取得する場合)

これを回避するには、今度はファイルを複数に分けて管理する事になります。
「ログイン情報.txt」「キャラクター情報.txt」「所持アイテム.txt」「装備品.txt」

しかしテキスト型の場合、基本的にファイル数が増えていくと管理が面倒になっていきます。
例えば「[Aプレイヤー]の[サブキャラクター]の[手の装備]の装備名」を取得したい場合に
1:「ログイン情報.txt」からユーザー識別IDを取得する
2:1で取得したIDを使い「キャラクター情報.txt」からサブキャラクターIDを得る
3:2で取得したIDを使い「装備品.txt」から手に装備されてるアイテムIDを得る
4:3で取得したIDを使い「所持アイテム.txt」から装備品名称を得る
※多少作り方に左右されます

SQLの場合、上の処理はやはり1行で簡単に行えます。
これがリレーションシップです(リレーのバトンのようにIDを渡していくため)

他にも複数分かれているファイル(テーブルという)を1ファイルのように結合したり
Aファイルの「IDだけ」、Bファイルの「死亡フラグ」だけと必要なファイルの必要な部分だけを結合し
新しいファイルCを作成したりとても便利です。

長くなりましたが、当時CPUが2.4GHzのペンティアム4マシンで、カーソルまわしで2時間かかっていた処理が
SQLに変えることで2分で終わるようになったことが有ります。
基本的にデータ数が大きいものほど、テキスト型より管理が楽になります。

興味がわきましたらSQLの検討を考えてみてください。

92 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 03:38:52.46 ]
>>74

>>90の訂正
[誤り]
次のように1行のデータサイズ合計が24byteで固定されている場合
|No[4byte]|名前[20byte]|メモ[20byte]|死亡フラグ[1byte]|
10000行目のデータがほしい時はファイルシークを24(byte)×10000(行)すれば

[正しい]
次のように1行のデータサイズ合計が45byteで固定されている場合
|No[4byte]|名前[20byte]|メモ[20byte]|死亡フラグ[1byte]|
10000行目のデータがほしい時はファイルシークを45(byte)×10000(行)すれば

93 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 07:35:42.32 ]
>>90
可変長レコードのテキストとDBを比較してDBが速度速いとかお前馬鹿?



94 名前: mailto:sage [2012/12/27(木) 07:42:04.78 ]
いちいち煽るな
心の貧しさ露呈しても恥ずかしいだけなことに早く気づけ

95 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 07:59:53.76 ]
レベル低い内容をだらだら長文で書き込むほうが恥ずかしいわw

96 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 08:51:07.49 ]
>>91
リレーのバトンだからリレーションか
初めて聞いたw

97 名前: 忍法帖【Lv=40,xxxPT】(1+0:5) mailto:sage [2012/12/27(木) 08:54:01.09 ]
リレーのバトン、
関係(relation)データベースだからでしょ

98 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 09:29:56.26 ]
リレーションとリレーをかけた俺うまいってことか

99 名前:デフォルトの名無しさん [2012/12/27(木) 09:43:16.38 ]
簡潔に答えられないやつはプログラムもクソな印象

100 名前:0 ◆SeZffd6X/Q mailto:sage [2012/12/27(木) 12:23:01.39 ]
>>93
データ内容にはよりますね。あくまで数ある中の一例ですが
テキストと比較しDB側が有利な点は数多くあります。
まして今は実装が簡単ですからね。

>>95
簡潔にまとめている方です。
本屋でDBの本、サイトでDB説明のサイトをぜひ読んでみてください。
そしてDBを何も知らない方を対象に2レスでまとめるには、どうするか?
考えて見ていただけると幸いに思います。

>>97-98
DBを何も知らない方を対象に専門用語をなるべく使わないよう
一般でよく使われる言葉でイメージしやすくしてみました。
専門用語を多く用いれば知識ある人には、わかりやすく、簡潔に、立派に見えますが
何も知らない方を対象にこれではダメです。
リレー例は初心者向け参考書などでもよく使われる一例です。

101 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 12:38:17.19 ]
リレーショナルは関係で、リレー(中継)とは全然違うだろ
初心者向けだからと言って嘘を教えるのは間違ってるし、
「参考書=正しい」でもないだろ

102 名前: 忍法帖【Lv=40,xxxPT】(1+0:5) mailto:sage [2012/12/27(木) 12:43:00.31 ]
そろそろ安藤プログラミングの話に戻ろうか

103 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 13:01:06.46 ]
俺はなるほどと思って見てたけどな
説明出来ない奴より全然マシ



104 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 13:11:54.79 ]
そもそも全文検索ならテキストファイルを全て読み込んでしまえば、
あとはCPUとメモリの性能だけの話だろう。

結局テキストファイルをどう扱うか次第。
前提条件を明確に設定せずに比べるような人間は、プログラムの才能が皆無だ。

105 名前:93 mailto:sage [2012/12/27(木) 13:15:38.99 ]
>>100
データ内容によるとかじゃなくて索引無しのファイルとDB比べて優劣云々言ってるお前がアホと言いたかったの
わかりにくくてごめんね

106 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 13:17:32.37 ]
説明しないけど批判は出来る奴wwww

107 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 14:23:49.90 ]
みんな冷静になって欲しい
そもそも>>65はDBの説明なんかを求めてはいない

今後のためにもDB勉強しとけ>>65

108 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 14:29:26.98 ]
Activityの遷移を行うときに親のActivityを閉じて、新しいActivityを親?(最上位)として表示させる方法はあるでしょうか?
Viewの切り替えでも良いのですが、既存のActivityを再利用したいためにこの方法利用したいと思います。

109 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 14:58:05.10 ]
>>108
元の奴finishすれば?

110 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 15:07:08.89 ]
>>109
ありがと。 
言われてみればそりゃそうだw

111 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 15:47:05.10 ]
2chmateを最新版に更新したら、
スレの更新などの後で表示される
Toastのような表示が、
単なるフェードイン、アウトではなく、
画面最下部から上方向にスライドしながら
表示され、消えるときは下方向に
スライドしながらフェードアウトする
ようになった。
こういう表示の仕方ってどうやるの?

112 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 16:10:27.10 ]
>>111
PopupWindowにアニメーション付けてるだけじゃないかな

113 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 16:38:37.33 ]
>>112
うーむなるほど、ありがとう。



114 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 18:19:54.87 ]
contextには何が入ってるのでしょうか?

115 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 18:24:33.22 ]
夢と希望が入っています

116 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 18:28:13.24 ]
リストビューからあるデータをクリックして、DBとリストからそのデータを削除したいんですがどうすればよいのですか?
削除したいデータのIDを取得すればいいと思うのですがその方法がわかりません
リストビューに表示したいのはa,b,cの3つですが下記の取得する列に_idを追加すると表示せざるをえなくなってしまいます
仮に_idを追加したところで、対象データをクリックした際にidを知る方法もわかりません・・・


String sqlstr = "select * from logtable where day='"+val_day+"'";
c = db.rawQuery(sqlstr,null);
adapter=new SimpleCursorAdapter(this,R.layout.list_item,c,
new String[] {"a","b","c"},
new int[] {R.id.item_a, R.id.item_b,R.id.item_c});
test_list.setAdapter(adapter);

117 名前:デフォルトの名無しさん mailto:sage [2012/12/27(木) 19:25:33.45 ]
developer.android.com/reference/android/widget/CursorAdapter.html#getItem%28int%29






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<35KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef