Androidプログラミング質問スレ Part23
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2012/06/19(火) 19:57:12.12※プログラミング自体が初めて!なあなたには↓↓↓こちらへ
スレ立てるまでもない質問はここで 118匹目
http://toro.2ch.net/test/read.cgi/tech/1331904826/
Eclipse統合M32【Java/C++/Ruby/Python/Perl】
http://toro.2ch.net/test/read.cgi/tech/1320318310/
★★Java質問・相談スレッド153★★
http://toro.2ch.net/test/read.cgi/tech/1334438859/
****関連リンク****
■ Android developers http://developer.android.com/
■ ソフトウェア技術ドキュメントを勝手に翻訳 http://www.techdoctranslator.com/
****前スレ****
Androidプログラミング質問スレ Part22
http://toro.2ch.net/test/read.cgi/tech/1337170429/
0783デフォルトの名無しさん
2012/07/13(金) 19:19:27.47参考にしてるサイトかブログがあると思うけど
別の探してはじめからやり直した方がいいかも
0784デフォルトの名無しさん
2012/07/13(金) 20:27:42.94sdk誤って消したから入れ直したら以前と違って驚いた
参考書もr20対応はまだ出てないみたいで・・・
tech funのサイト見てやっと分かったけど
techfun.cc/techinf/helloworld/android/
0785デフォルトの名無しさん
2012/07/13(金) 22:00:22.25windowsだと改行マークが化けとるし
0786デフォルトの名無しさん
2012/07/13(金) 22:40:20.26どこか良い参考サイトは無いでしょうか?
0787デフォルトの名無しさん
2012/07/13(金) 22:57:25.59バージョンが変わる度に、今まで出てなかった新たなエラーが出るようになり
バージョンが変わる度に、いちいち無駄な作業が増えやがる
なんてふざけた開発環境なんだ
0788デフォルトの名無しさん
2012/07/13(金) 23:28:15.770789デフォルトの名無しさん
2012/07/13(金) 23:36:52.640790デフォルトの名無しさん
2012/07/13(金) 23:47:18.43馬鹿な質問してしまったw
0791デフォルトの名無しさん
2012/07/13(金) 23:47:58.98を追加して、PCから実機にインストールした場合は
SDカードに移動出来たんだけど、play経由でダウンロードした場合は
SDカードに移動出来ない。
うpから時間経ってるし、バージョンも確認したんだけど。
なにか原因になりそうな事分かる人いませんか?
0792デフォルトの名無しさん
2012/07/14(土) 01:17:34.30改めてここで質問します。マルチポストとなりますがご了承ください。
現在抱えている問題は以下の通りです。
・NDKのネイティブプログラム内でファイルをfopen等で新規作成し、PCに繋げてエクスプローラ等で操作を行いたい。
・SDカード内に書き込む場合はカードをマウントすれば問題ないが、
Android端末がMTPデバイスであった場合、ファイルを作成しただけでは見ることができない。
・ファイルが見えないのはメディアデータベースに登録されていないのが原因であり、
ファイル作成後にMediaScannerConnection.scanFile()を実行すれば見えるところまでは確認できている。
・同等の操作をネイティブプログラム側から行いたいが、そのためにはContextオブジェクトへの参照が必要。
・ファイルを作成する機能は単一の.soライブラリファイルとして提供したい。
すなわち、Contextの参照を行うためのJavaファイルを別途用意する、というような実装方法は避けたい。
良い解決方法は無いでしょうか?
0793デフォルトの名無しさん
2012/07/14(土) 01:57:01.56レスが遅くなったけど、がんばって取り除いて行きます。
今、MATをチラ見したんですけど、意味不明なリークもあったりするので、
また、質問させて頂きますので、その時はよろしくです!
0794デフォルトの名無しさん
2012/07/14(土) 07:23:30.43http://mofo.pns.to/wibs/#383
0795デフォルトの名無しさん
2012/07/14(土) 08:31:04.47たしか本体の優先インストール先みたいな項目をSDにしたら移動できる
0796デフォルトの名無しさん
2012/07/14(土) 09:48:01.67sendBroadcastで通知する処理を行っています。
教えていただきたいのですが、ServiceにBindしているActivityのリスト
って取得可能なのでしょうか?
あとActivityが強制終了した場合でもonUnbind()は必ず呼ばれるのでしょうか?
0797デフォルトの名無しさん
2012/07/14(土) 11:43:51.66あるサイトを参考にしたんですがそれでも動いてくれません 何か間違っている所ありますか?
WebView web = (WebView) getActivity().findViewById (R.id.webview); 設定}
public class MyWebChromeClient extends WebChromeClient{
protected View customView;
@Override
public void onShowCustomView(View view, WebChromeClient.CustomViewCallback callback) {
customView = view;
FrameLayout mainFrame = (FrameLayout)findViewById(R.id.mainFrame);
mainFrame.addView(view);
View browserFrame = findViewById(R.id.browserFrame);
browserFrame.setVisibility(View.GONE);
}
<FrameLayout android:id="@+id/mainFrame">
<LinearLayout android:id="@+id/browserFrame">
<WebView android:id="@+id/webview"/>
0798デフォルトの名無しさん
2012/07/14(土) 11:49:15.98動画画像を押下するとonShowCustomViewが呼び出され、
そのメソッドの引数のviewをFrameLayoutに突っ込み、
LinearLayout以下のviewを非表示にするだけだと思ったんですけど、
そうでは無いみたいなんですよね。
0799デフォルトの名無しさん
2012/07/14(土) 12:41:39.11なんであんなに見づらいんだろうね。
区切り線がなくなったからかな。
0800デフォルトの名無しさん
2012/07/14(土) 14:41:58.92背景画像を設定した後、Canvas#drawBitmapなどで
画面に描画すると背景画像が最前面になってしまうのですがなぜでしょうか?
0801デフォルトの名無しさん
2012/07/14(土) 15:11:00.78デフォルトではSurfaceViewのウィンドウはActivityのウィンドウよりも背後にいて、
Activityのウィンドウに穴を空けることによって背後にあるSurfaceViewのウィンドウが見えるようにしているので、
Activityのウィンドウ内に何かを書くとその穴をふさいでしまい、背後のSurfaceViewが見えなくなるから
0802デフォルトの名無しさん
2012/07/14(土) 16:54:38.82アンドロイド標準のアラートダイアログを表示するようにしてるのですが
最初からボタンにフォーカスが当たってしまっています(黄色くなる)
Activity起動直後のダイアログ表示時にボタンにフォーカスを当てないようにする方法はあるのでしょうか?
ダイアログは他と統一性を出すため標準のアラートダイアログを使用しています
0803デフォルトの名無しさん
2012/07/14(土) 17:07:21.360804デフォルトの名無しさん
2012/07/14(土) 17:21:21.60普通というとあれですが、例えば何かボタンを押して次のダイアログを出した時には
フォーカスはそのダイアログのボタンに当たってないのです
2つ目以降のダイアログでもEditTextが組み込まれてた場合は
ExitTextにフォーカスがあたっています。しかし、ボタンだけのものには
フォーカスはあたっていません
何故activity起動時直後に表示したダイアログだけボタンにカーソルが当たるのか
それがわからないんです。でそれをどうにかして当たらないようにしたいのです
0805デフォルトの名無しさん
2012/07/14(土) 19:15:45.68なんとなくわかりました
ありがとうございます
0806デフォルトの名無しさん
2012/07/14(土) 19:21:53.24もしかしてエミュだろう
Android は OS の起動直後はタッチモードではないので、上下左右キーで選択操作できるように、ボタンでもなんでもフォーカスが当たる
一度画面のどこかをタッチすると、タッチモードに切り替わり、ボタンやリストビューにはフォーカスが当たらなくなる (EditText はいつでもフォーカスが当たる)
また上下左右キーを押すと、タッチモードから抜けて、またボタンでもなんでもフォーカスが当たるようになる
0807デフォルトの名無しさん
2012/07/14(土) 20:16:21.280808デフォルトの名無しさん
2012/07/14(土) 20:33:57.36webview = (WebView) findViewById(R.id.webView1);
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebViewClient(new LoadingClient());
webview.loadUrl("http://ameba.jp/");
これでアメーバのページを読み込もうとしているんですが完全に読み込まれません
標準ブラウザで開けるので多分設定が足りないかなにかだと思うのですがわかりません
教えてください
0809808
2012/07/14(土) 20:34:57.48標準ブラウザで開ける→標準ブラウザで表示される
0810デフォルトの名無しさん
2012/07/14(土) 20:54:07.000811デフォルトの名無しさん
2012/07/14(土) 21:03:01.35トップページにflashは使われてないみたいなので関係ないと思います
0812808
2012/07/14(土) 21:43:38.92webview.setWebChromeClient(new WebChromeClient());
を追加すると
ローカルストレージを有効にしてくれって出てました
ぐぐったのですがローカルストレージを有効にする方法が見つかりませんでした
有効にする方法を教えて下さい
0813デフォルトの名無しさん
2012/07/14(土) 22:19:23.09Activityの起動後、ダイアログを表示する前にタッチモードに切り替えておけば
この問題は解消されるかもしれないということですかね?ちょっと考えてみます。
0814デフォルトの名無しさん
2012/07/14(土) 23:05:03.97たとえばロック解除画面とか、ホーム画面のアイコンとかをさ
OS 起動してから一度も画面にタッチせずにアプリを立ち上げるって状況は、エミュではよくあるけど、実機ではなかなか起きない
その上でどうしてもフォーカスされたくないっていうんなら、AlertDialog#getButton でボタン取得して setFocusable(false) でも呼んどけば?
0815808
2012/07/14(土) 23:06:41.15でできました
0816792
2012/07/14(土) 23:15:57.72試してみます。
あと、「Activity名をパッケージ名ごと登録する」というのを初期化処理に加えて、その初期化自体自体はJavaから呼ぶ、ってのを考え付きました。
Activityクラス名が分かればContextを引っ張って来れそうなので。
今試せる環境でないので、あとで試してみて報告します。
0817デフォルトの名無しさん
2012/07/15(日) 01:51:44.71こっちのはレベル7だからGBでも再生されるハズなのに駄目なんですかね?
public void onShowCustomView(View view, WebChromeClient.CustomViewCallback callback)
0818デフォルトの名無しさん
2012/07/15(日) 02:24:53.91解決しました。
0819デフォルトの名無しさん
2012/07/15(日) 02:46:06.95×FrameLayout
○ViewGroup
海外サイトだとFrameLayoutに突っ込んでるようだけど、
あれでどうやって再生しているのかは謎
0820デフォルトの名無しさん
2012/07/15(日) 06:56:46.542.3.x 「onPause→onResume」
3.0 4.0 「onPause→onStop→onRestart→onResume」
ライフサイクルが違うの嫌だなあ…
そもそも「ホームに戻ってから復帰」「インテントで何か呼び出し後に復帰」「スリープからの復帰」
これらをアクティビティ上で区別できないのが嫌
0821デフォルトの名無しさん
2012/07/15(日) 08:39:06.84みなさんはどうやって対処してるんですか?
0822デフォルトの名無しさん
2012/07/15(日) 10:33:03.02viewそのまま再利用はincludeを使えば良いと思うのですが、
view全体はそのままで子viewだけカスタマイズを行いたいです.
そして、このカスタマイズをxmlだけで行いたいと思っています.
(ソースコード内ならインフレートすればいけるので)
0823デフォルトの名無しさん
2012/07/15(日) 11:17:13.88困るかそれ?
2.3.x用に合わせて作ってれば3.0と4.0でも同じ動きじゃね?
>「ホームに戻ってから復帰」「インテントで何か呼び出し後に復帰」「スリープからの復帰」
この3つも共通して、何かに割り込まれて自アプリが一旦停止し、また復活した〜、な訳だから、これも同じ気がするのだが・・・
この3つを細かく検出して処理を分けたいアプリって何だろう・・・・
0824デフォルトの名無しさん
2012/07/15(日) 12:49:00.12たまにはそういう判別できればなぁという時もあるだろうさ
例えばアプリ作成依頼して来たお客さんから
「スリープから復帰した時だけパスワードロック画面出してくれ」
と言われたりな
仕事だと直接の上司すらAndroidの仕様を全く知らない事も多いので、
割と無茶振りも多いんだぜ
0825デフォルトの名無しさん
2012/07/15(日) 12:54:34.54そんな都合の良いxml、またはそれに近しいメソッドってありますか?
0826デフォルトの名無しさん
2012/07/15(日) 12:56:52.99回答では殆どRelativeLayout使えって書いてあるんだけど、
俺それを知らなくていつもFrameLayout使ってたんだ。
本当はRelativeLayoutじゃないとダメなのかな?
0827デフォルトの名無しさん
2012/07/15(日) 12:57:48.68画像の四方のエッジ部分をバックグランドの色になるようフェーディングしたいのですが、
そんな都合の良いxml、またはそれに近しいメソッドってありますか?
0828デフォルトの名無しさん
2012/07/15(日) 13:52:38.14ちょっと情報が古いが、
http://d.hatena.ne.jp/hyoromo/20100509/1273399359
他にも色々テクがあるんだが、ブクマ整理したときにURL消しちゃったw
0829デフォルトの名無しさん
2012/07/15(日) 16:35:16.45な〜るほど。
まあ、「インテントで何か呼び出し後に復帰」「スリープからの復帰」
この2つの違いなら現状でも判別できるよん。
スクリーンON/OFF時に呼ばれるやつで判別できる。
問題は「ホームに戻ってから復帰」「インテントで何か呼び出し後に復帰」この2つ。
これは「それっぽい判別」は可能でも「100%完璧に識別」は確かに無理
0830デフォルトの名無しさん
2012/07/15(日) 18:26:13.73どのボタンが押されたかを区別する方法がうまくいきません。
public void onCreate(--){
ButtonController bc = new ButtonController();
Button b = (Button) findViewById(R.id.button);
b.setOnClickListener(bc);
}
public class ButtonController implements onClickListner{
0831830
2012/07/15(日) 18:27:23.02すみません。
public class ButtonController implements onClickListner{
public void onClick(View view){
0832830
2012/07/15(日) 18:32:13.50本当にすみません。
public class ButtonController implements onClickListner{
public void onClick(View view){
}
}
このonClickメソッド内で任意のActivityクラスの
どのボタンが押されたのかを判別する方法などありますでしょうか?
findViewById()はActivityクラスを継承していないと使えず出来ませんでした。
よろしくお願いします。
0833デフォルトの名無しさん
2012/07/15(日) 19:50:13.76とか
0834デフォルトの名無しさん
2012/07/15(日) 20:01:29.34Button2Controller
Button3Controller
って分けておけばそもそも判別する必要がないけど
0836デフォルトの名無しさん
2012/07/15(日) 23:47:40.94shutdownだけではダメなのでしょうか?
できる限りメモリを開放する方法を教えて下さい
0837デフォルトの名無しさん
2012/07/16(月) 01:43:07.080838デフォルトの名無しさん
2012/07/16(月) 02:27:04.98誰か分かり方いらっしゃいませんでしょうか?
0839デフォルトの名無しさん
2012/07/16(月) 02:32:40.51response.getEntity().getContent()をclose()していないとか、
response.getEntity().consumeContent()を呼んでいないとか。
ていうか自力でリソースの処理分からんのなら、
素直にResponseHandler使え。
俺もいまだに良く分からん。
とりあえずぐぐって出てきた参考ページ
http://d.hatena.ne.jp/terurou/20110702/1309541200
0840デフォルトの名無しさん
2012/07/16(月) 09:21:51.18内部で変更履歴のテキストファイルを持たせて
TextViewか何かで表示するのがよいでしょうか?
みなさんはどんな方法で表示してますか?
0841デフォルトの名無しさん
2012/07/16(月) 09:24:41.84Java的に綺麗に書けなくなる感じが・・・
もう2.33以降ならバリバリ、インスタンスしちゃってもいいのだろうか?
0842デフォルトの名無しさん
2012/07/16(月) 10:29:43.75numRunningが0の時があるのですがこれはどういった状態なのでしょうか?
0843デフォルトの名無しさん
2012/07/16(月) 13:15:52.490844デフォルトの名無しさん
2012/07/16(月) 13:27:34.010845デフォルトの名無しさん
2012/07/16(月) 13:31:29.36確保から解放までしっかり自分で管理し、リークを起こさない為にも
礼儀で実行ファイル終了後に全て自分で解放!
・・・とやりたくなるだろうけども(そうやって教えられてきたからね)
このやり方が「マニュアル車」として、
Androidのプログラミングは「オートマ車」と思った方がスマートですよ!
つまり部屋中ゴミメモリーで食い散らかしても
自分で片付けず、そのまま退室しちゃえば
あとでルームサービス(ガベージコレクション)が勝手に掃除してくれる。
そして「プロの仕事はプロのルームサービス(ガベージコレクション)に丸投げしてください。
素人が変にプロの仕事に割り込まないでください。邪魔になるだけです。」というのが
Google側の推奨。
Androidプログラミングは、そういった意味でも、今までとは違う、新しいやり方なのかもしれないね
0846デフォルトの名無しさん
2012/07/16(月) 13:33:24.63onSharedPreferenceChangedは?
0847846
2012/07/16(月) 13:34:42.770848デフォルトの名無しさん
2012/07/16(月) 13:44:41.84こんなこと言ってる奴に限って、後から
「くっそGC止められんないかなぁ」
とか言う罠w
0849デフォルトの名無しさん
2012/07/16(月) 14:17:36.33GCは関数型言語とかで云十年も前からあるわけで、たまたま触らずに生きて来ただけの話
0850デフォルトの名無しさん
2012/07/16(月) 14:26:30.66「GCがあるからメモリリークとか絶対に起きていません!」
とか真顔で言い始める奴がいてワロタ
まあ解放する術を失った状態をメモリリークと表現するなら
確かに間違っていないんだが、
「お前どこかで参照つかんだままなんだよ」って何度説明しても
話が通じなかった
0851デフォルトの名無しさん
2012/07/16(月) 15:25:52.95com.android.nfcパッケージのNfcServiceクラスがimportできないのですが、
どうやればimportできるでしょうか?
0852デフォルトの名無しさん
2012/07/16(月) 16:08:55.690853デフォルトの名無しさん
2012/07/16(月) 19:41:58.73twitter4jを使ってOAuth認証しようとしています。
2.3.3のエミュレーターや2.3.4の実機では正常に動くのですが、
4.0.3のエミュレーターではgetOAuthRequestTokenで停止してしまいます。
エスパーさん、なんでですかね…
0854デフォルトの名無しさん
2012/07/16(月) 20:50:04.84ホームアプリ上ではホームボタンを押してもAは起動せず、
ホームアプリのデフォルト動作(ホームポジションに移動)しているのですが、
これはどのようにして実現しているのでしょうか?
普通ならホームボタンのイベントはAに奪われていると思うのですが…
0855デフォルトの名無しさん
2012/07/16(月) 20:50:40.23アクティビティを遷移しても、そのオブジェクトだけそのまま残るみたいな感じです。
オブジェクトというか画面要素かな?まぁ画像だと思ってくれて良いです。
もし作れるならば、ヒントください。
0856デフォルトの名無しさん
2012/07/16(月) 20:53:23.58Bundle
0857デフォルトの名無しさん
2012/07/16(月) 20:59:47.65よしエスパーに任せろ。
暗黙的に何らかのヘッダーがリクエストに入ってしまっているんだ。
それが原因でtwitter側で弾かれてしまっている。
というわけで、明示的に指定してオーバーライドすればよい。
0858デフォルトの名無しさん
2012/07/16(月) 21:00:07.47ありがとうございます。調べ中です。
ちなみに、アクティビティ遷移のアニメーション使ってて、
そいつだけ遷移のアニメーションの影響を受けないで残ってる感じにするのは無理ですよね?
0859246
2012/07/16(月) 23:00:58.29このメソッドを実行するだけで約10秒(曲数2000)かかります。
この処理を出来れば1秒程度で終わらせたいのですが、何かいい方法は無いでしょうか?
ちなみにAsynkTaskを取り入れようとしたんですけど、どうにも上手くいきませんでした。
http://pastebin.com/1AHxhpr1
0860デフォルトの名無しさん
2012/07/16(月) 23:16:22.11ない。AsyncTaskに入れろ。
0861デフォルトの名無しさん
2012/07/16(月) 23:21:49.830862デフォルトの名無しさん
2012/07/16(月) 23:24:47.85上のほうで書いてるようにCorsorAdapterで必要な分だけ読めば?
0863デフォルトの名無しさん
2012/07/16(月) 23:32:10.78サンプル見ながら書けばいいだろ
0864デフォルトの名無しさん
2012/07/16(月) 23:44:08.940865デフォルトの名無しさん
2012/07/17(火) 00:03:24.150866246
2012/07/17(火) 00:18:15.02やっぱりAsynkTaskが必要ですかぁ。AsynkTaskはホントに良く分からないんですが、
1、getAlbumのメソッドは文字だけ追加で、
AsynkTaskでは始めに汎用画像をセットして、
その後、onPostExecuteで直接リストアダプターに入れこむんでしょうか?
2、その場合、リストアダプターでtask.execute(引数はposition?)ですか?
3、だとしたらdoInBackgroundは画像1枚を取得し何度もnew Taskしてやると言うことでしょうか?
0868デフォルトの名無しさん
2012/07/17(火) 01:38:00.96なるほど、なんとなくは分かったんですけど具体的にどうしたら…
もう少しヒントをください!
0869246
2012/07/17(火) 02:02:14.51いま、CursorAdapteを調べてみたんですけど、
アルバムアートの様にカーソルをNextさせても出て来ない物がある場合、
CursorAdapteって不向きじゃないですかね?間違ってます?
もしそれが可能であれば、一番ベストな選択だと思うんですけど。
0870デフォルトの名無しさん
2012/07/17(火) 17:17:43.33どうすればいいのでしょう。 Webサイトからのアップロードはできるのですが、
Androidからのアップロードがよくわかりません。お願い致します
0871デフォルトの名無しさん
2012/07/17(火) 17:31:51.466コアが主流になれば1秒で終了すると思うぞw
0872デフォルトの名無しさん
2012/07/17(火) 17:40:32.040873デフォルトの名無しさん
2012/07/17(火) 19:46:30.10どうやらActivity呼び出し時のデバイスの向きによってそれぞれのサーフェスビューの順序が変わってしまっているようです。
縦向きでActivityを呼び出すとちゃんと表示できるのに、横向きで呼び出すとうまくいきません。
そもそもサーフェスビューを複数使うということがいけないのでしょうか?
ボスケテ。
0874デフォルトの名無しさん
2012/07/17(火) 20:28:13.820875デフォルトの名無しさん
2012/07/17(火) 20:36:40.810876デフォルトの名無しさん
2012/07/17(火) 22:58:08.29内部ストレージの/data/data/jp.hoge.android.piyo/web/hogera.htmlが存在したとして、
そのページをWebViewで表示させようとしたのですが、
WebView webView = (WebView)findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("/data/data/jp.hoge.android.piyo/web/hogera.html");
としても実行されません。
何か追加で書かないといけない点、loadUrlの使用方法などの誤りがあれば
ご指摘ください。お願いいたします。
assetsから呼び出す方法ではすでに実装できているので、内部ストレージ内の
ファイルを呼び出して表示する方法が知りたいです。
0877デフォルトの名無しさん
2012/07/17(火) 23:39:20.730878デフォルトの名無しさん
2012/07/17(火) 23:47:20.40それはできない。
0879デフォルトの名無しさん
2012/07/17(火) 23:48:03.39http://tech.topgate.co.jp/android/android-lvl-introduction
このサイトを参考に導入しようとしたところSDKManagerにMarket Licensing packageはなく代わりにGoogle Play Licensing Libraryがありました
これで合っているのでしょうか?
もし合っているならこれはAndroidのディレクトリのどこにあるのでしょうか?
0880デフォルトの名無しさん
2012/07/17(火) 23:52:53.87ここは?
つttp://fron.sitemix.jp/blog/2012/02/23/30/
0881デフォルトの名無しさん
2012/07/17(火) 23:54:08.47extras/google/market_licensing/library
0882デフォルトの名無しさん
2012/07/18(水) 01:02:37.59ありがとうございます
早速入れてみます
■ このスレッドは過去ログ倉庫に格納されています