トップページ⇒tech
1001コメント363KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/06/19(火) 19:57:12.12
このスレではAndroidSDK・NDKやAndroidマーケットに関する質問を扱ってます。

※プログラミング自体が初めて!なあなたには↓↓↓こちらへ
スレ立てるまでもない質問はここで 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/
0505デフォルトの名無しさん2012/07/07(土) 13:54:27.25
Page1,2,3と3つのFragmentを生成するFragmentPagerAdapterで試してみた。
(Swipe Views + Title Stripの新規プロジェクトとほぼ同じ、エミュはGoogle API 16)

起動時
1、2の以下のメソッドが以下の順番で呼ばれる。
onAttach > onCreate > onCreateView > onActivityCreated > onStart > onResume

左にスワイプして2を表示させたとき
3の以下の〜
onAttach > onCreate > onCreateView > onActivityCreated > onStart > onResume

さらに左スワイプして3を表示させたとき
1の以下の〜
onPause > onStop > onDestroyView

右にスワイプして2を表示させたとき
1の以下の〜
onCreateView > onActivityCreated > onStart > onResume
(onAttach、onCreateは呼ばれない)

ここから他のアプティビティを起動(メニューから)
1、2、3の以下の〜
onPause > onStop

最初のアクティビティに戻る
1、2、3の以下の〜
onStart > onResume

アプリ終了(最初のアクティビティを閉じる)
1、2、3の以下の〜
onPause > onStop > onDestroyView > onDestroy > onDetach
0506デフォルトの名無しさん2012/07/07(土) 13:56:47.19
なんで以下のことがわかる。
1. あるFragmentを表示したら、その両隣のFragmentも準備される
2. FragmentはActivityが死ぬまで保持されるので、生成に時間がかかるオブジェクトをFragmentのフィールドに持たせて再利用することで、パフォーマンスを向上できる
(もちろんActivityが死んだときのことを考慮して、Stateを保存しておくことも必要だと思う)

>>501
確かに難しい、というかAndroid自体がw
ライフサイクル多いし、ソース追うにしてもcase文ばっかり+10000行越えとかで萎えるときがある。
0507デフォルトの名無しさん2012/07/07(土) 15:10:36.84
>>504
ずっとそのページ参考にしてました。もう少しがんばってみます。
0508デフォルトの名無しさん2012/07/07(土) 15:18:49.36
>>507
毎回AsynkTask生成すれば?
生成しすぎると落ちるらしいけど
0509デフォルトの名無しさん2012/07/07(土) 17:36:51.94
>>494
サーバー、クライアントのプログラム動かさんといかんのじゃないの?
05104942012/07/07(土) 18:26:54.83
>>509
返答ありがとうございます。
確かに、このサイトで書いてあるのは、サーバ・クライアントで通信するようなプログラムを想定していると思います。
私はWi-FiDirectのデモアプリをエミュだけで動かしてみたかったので、同じLAN内で2つのエミュを起動させることはできないかと、このサイトを試していました。
ですがどうもやり方が見つかりません。
やはり実機がないと厳しいのでしょうか・・・
05114942012/07/07(土) 18:27:24.99
×このサイトを試していました
○このサイトを参考に試していました
0512デフォルトの名無しさん2012/07/07(土) 18:37:46.65
>>510
ttp://techbooster.jpn.org/andriod/device/9960/
テキトーにここ読んでみたら
wifiっていっても基本的にはただLANだと思うけど
0513デフォルトの名無しさん2012/07/07(土) 21:02:55.17
中国 「日本人がスマホを買わないのは理性があるから。韓国人と中国人は頭が悪いからスマホを買う」
http://engawa.2ch.net/test/read.cgi/poverty/1341582310/


【中国BBS】理性的な消費の日本人、メンツでスマホを買う中国人、韓国人

「日本でのスマートフォン使用者の比率は中韓の半分だけ!」というスレッドが立てられ、さまざまな意見が寄せられた。
スレ主は、日本メディアによるニュースとして、日中韓でのスマートフォンの利用状況について調査を行ったところ、スマートフォン
利用者がもっとも少ないのは日本であることが分かったと紹介。調査結果によれば、中国は90%で韓国は91%だが、
日本は44%にすぎなかったという。この結果について次のようなコメントが寄せられた。

・「これを理性的な消費という。多くのものは一過性だ。本質的ではなく実用的でもない」

・「(日本は)生活が豊かだから、携帯電話もスマートフォンかそうではないとかの区別がない」

・「ごく正常な結果だ。日本人はスマートフォンに依存していない」

・「日本人は倹約家で、中国人のように死んでもメンツを守るという考えがない」

・「折り畳み携帯こそ王道であり頑丈だ」

中国でのスマートフォン使用者が多い理由については、「メンツ」を挙げる人が多く、中国人は
お金があってもなくてもメンツのためにiPhoneを買わなければならない、わが国の国民は
どんなに貧しくても良い携帯電話を買って自分を装う、などのコメントがあった。
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0706&f=national_0706_028.shtml
0514デフォルトの名無しさん2012/07/07(土) 22:11:32.71
R cannot be resolved to a variable
ではまった。
なんとかしてくれ・・・。
0515デフォルトの名無しさん2012/07/07(土) 22:26:21.28
クリーンするか、gen消してリビルド
0516デフォルトの名無しさん2012/07/07(土) 22:41:10.51
>>515
それでなおらんからこまっとr・・・・なんだと!

今やったら直ったがな。
よくわからんが、サンクス!
0517デフォルトの名無しさん2012/07/07(土) 22:44:44.07
こればかりはマジで意味不明だから困るよな
クリーンしてもRがありませんとかぬかしやがるから再起動とかするときもあるし
0518デフォルトの名無しさん2012/07/07(土) 23:21:44.91
エミュのEditTextにPCのキーボードから入力できなくなった
助けてアルゴマン
05194942012/07/08(日) 00:59:06.62
>>512
すみません、>>510の「同じLAN内で2つのエミュを起動させることはできないかと、」は表現おかしかったです。
エミュ同士をWi-FiDirectでLAN接続できないかなーと思っていろいろ試してまして。。。
「2つのエミュを使い、Wi-FiDirectでLANを構成することはできないかと」の方が正しいです。
0520デフォルトの名無しさん2012/07/08(日) 01:20:58.87
>>519
俺もよーわからんで付き合ってる
Wi-FiDirectでLANって言ってるのが理解できないんだけど
無線LANは接続手順があるってだけで
つながったら、ただのLANと同じ扱いが出来るんじゃないの

2つのエミュってのは同じマシン上にあるってだけなんじゃあ
同じマシン上接続手順はwebに書いてある
ただ、それを確認するにはプログラムが動かさないといけないってことじゃあ

p2pやりたいのなら、ipがわからないと通信できないのでは
0521デフォルトの名無しさん2012/07/08(日) 02:37:09.65
続き
Wi-FiDirectってのはローカルな接続が出来る機能なのね
エミュのこともよー知らんけんけど、新し目の機能は使えんのかもね
0522デフォルトの名無しさん2012/07/08(日) 03:27:26.42
このデモアプリケーションのソースコードは、Wi-Fi Direct API を利用して、3つの重要な事柄を達成する方法を示しています。
・接続相手 (peer) を発見する。
・Wi-Fi Direct API を利用して接続する。
・ファイルを転送するためにTCPソケットを開くことができるように、post connection に関するグループの詳細を見つける。

ttp://android.ohwada.jp/archives/709

>接続相手 (peer) を発見する。
ここが肝なのかも
0523デフォルトの名無しさん2012/07/08(日) 04:05:27.19
くそー、もう朝方じゃないか・・・・。
startActivity呼んだだけで、本当にパーミッションいるのかよ・・・。

java.lang.SecurityException: Permission Denial: getTasks() from pid=10486, uid=10173 requires android.permission.GET_TASKS
at android.os.Parcel.readException(Parcel.java:1322)
at android.os.Parcel.readException(Parcel.java:1276)
at android.app.ActivityManagerProxy.getTasks(ActivityManagerNative.java:1754)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1379)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1377)
at android.app.Activity.startActivityForResult(Activity.java:2849)
at android.app.Activity.startActivity(Activity.java:2975)
at com.tojc.ShowServiceMode.MainActivity.onClickButtonExecuteShowServiceMode(MainActivity.java:155)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at android.view.View$1.onClick(View.java:2180)
at android.view.View.performClick(View.java:2585)
at android.view.View$PerformClick.run(View.java:9299)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3691)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:670)
at dalvik.system.NativeStart.main(Native Method)

しかし、権限つけなくても、期待通りに動いてるんだけど。
GET_TASKSつけたら、でなくなるけどさ・・・こんな権限つけたくねぇよぉ
どーしたもんかな。
0524デフォルトの名無しさん2012/07/08(日) 09:00:04.43
Viewの罫線表示について教えてください.

TextViewに対してxmlの

<shape><stroke>

を使って枠線(全辺囲み)を表示することはできましたが、
特定の辺を指定して(左辺と下辺など)罫線を表示するには
どのようにすればできるのでしょうか.

極力xmlでやりたいですが、他の方法があるのであればそちらも
教えていただきたいです.
0525デフォルトの名無しさん2012/07/08(日) 09:06:45.46
?ttp://android.ohwada.jp/archives/1442
0526デフォルトの名無しさん2012/07/08(日) 09:13:41.84
cssみたいにできないからねえ
できないなら力業で描くしかないんですよ
0527デフォルトの名無しさん2012/07/08(日) 09:21:04.67
できないよ
0528デフォルトの名無しさん2012/07/08(日) 09:33:17.93
NinePatchでやれば?
0529デフォルトの名無しさん2012/07/08(日) 09:49:43.22
Google検索を使いたいときAPIなどを使ったほうがいいんでしょうか?
Google検索から直接取るとすぐにGooglesorryになります
05304942012/07/08(日) 11:03:25.66
>>520-522
返答ありがとうございます。

>>ただ、それを確認するにはプログラムが動かさないといけないってことじゃあ
付属のデモアプリがP2P通信の基本的な接続機能を行うプログラムだと思っています。
ですが、そのデモでもう一方のエミュを見つけることができないので、494のサイトを見たりしたというわけです。
エミュ自体には特にWiFiを有効にするような設定は見当たりませんし、通常エミュで通信するには内部的にルータを通しているようですし。
やはりエミュだけでは、P2Pは無理なのですかね。

しかし、ttp://stackoverflow.com/questions/9682217/how-to-run-wifi-peer-to-peer-application-in-android-emulator では
 Settings --> Wireless & Networks --> More... --> Wi-Fi direct .
でWi-FiDirectができるとありますが、4.0と4.0.3の両方見てもこれが見つからないんですよね・・・
0531デフォルトの名無しさん2012/07/08(日) 11:52:26.01
オリジナルフォントをStyle的な何かを使ってアプリ全体に適用させたいのですが、
コードでgetAssets()する方法しか見つかりません。もしかして出来ないですか?
05325312012/07/08(日) 13:30:17.70
これでは駄目でした。何か良い手はありませんか?お願いします。
<item name="android:@assets/フォントのフォルダ名">フォント名</item>
0533デフォルトの名無しさん2012/07/08(日) 14:02:18.17
android:typeface
0534デフォルトの名無しさん2012/07/08(日) 14:19:16.37
>>530
デモ動かしたいだけなら、プログラムとはあんまり関係ないような
デモのソース見ることとエミュ同士で接続出来るって情報で
自力でやるしかないような

そのurlに書いてあるのはvirtualbox使ったってことみたいだよ
05355312012/07/08(日) 14:28:13.56
>>533
そのtypefaceを使ってstyle上でassets/フォントフォルダを参照できないですか?
05365312012/07/08(日) 16:39:51.16
質問の仕方が不味かったです。
style上でカスタムフォントを定義したいのですが、
可能でしょうか?
0537デフォルトの名無しさん2012/07/08(日) 17:11:46.23
多分できにあからTextViewとEditTextViewのカスタムクラス作れば
それでxmlからそのクラス呼べばstyle使うのと大差ないよ
05385312012/07/08(日) 17:22:27.08
>>537
やっぱり出来ないですか。上でViewPagerの話が出てたんで、
自分もちょっと使ってみようと思ったんですけど早くもTitleStripで躓いてしまったw
ここはstyleじゃないとフォントサイズ等変更できないみたいなんですよね。
0539デフォルトの名無しさん2012/07/08(日) 18:47:44.04
>>538
リフレクションで取るしか?
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.3_r1/android/support/v4/view/PagerTitleStrip.java?av=h#PagerTitleStrip
05405312012/07/08(日) 19:01:51.78
>>539
そうか、そう言う手があったw ありがとw
0541デフォルトの名無しさん2012/07/08(日) 21:31:57.52
>>534
本当ですね、すみません。
英語苦手でつまみ読みしかしてなかったので・・・
 VirtualBoxにandroidx86 4.0eeepc入れて・・・
って感じですかね。
だから同じ設定が見つからなかったのか・・・・
もう少し調べてもダメそうならエミュだけでってのはあきらめようと思います。
ありがとうございました。
0542デフォルトの名無しさん2012/07/08(日) 21:59:46.21
>>541
ちょっと、emu動かしてみた
emuのip調べる方法
emu起動
$ adb devices
一覧に
emulator-5554
というのが出る。2つ起動してると2個出るのかな?
$ adb -s emulator-5554 shell
# netcfg
ipの情報が出る
#exit

$ telnet localhost 5554
これでコンソールコマンドが使えるようだ
0543デフォルトの名無しさん2012/07/08(日) 23:06:22.87
xmlレイアウト内で TextView に android:id で id を設定して、R.javaを見ると確かに id が割り当てられてるのに
実機デバッグすると、そのidはぬるぽだよって怒られる((っ´ω`c))

---エラー
(中断中 (例外 NullPointerException)

---xmlレイアウト
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ぬるぽ"
android:textSize="12dp"
android:textColor="#ffffff"/>

---R.java
public static final int text=0x7f07000c;

---ソース内
TextView tv = (TextView)findViewById(R.id.text);
tv.setText("がっ");

プロジェクトをクリーンしたのに直らないのは仕様ですか?
0544デフォルトの名無しさん2012/07/08(日) 23:22:22.74
anroid.R. の方をインポートしてないかい
0545デフォルトの名無しさん2012/07/08(日) 23:25:13.88
>>542
レスありがとうございます。
emuでtelnetまではやりましたが、よくよく考えると結局ポートフォーワードしてもWiFiDirectには
関係ないのかな、と考えたところでどうしたら良いかわからなくなり、ここで質問しました。
ちなみに、devicesでエミュ2つとも出現しました。
05465442012/07/08(日) 23:54:04.20
>>543
ごめん、anroid.R.id.textなんて存在してなかったわ
無視してくれたまえ
0547デフォルトの名無しさん2012/07/09(月) 00:01:04.30
>>545
wifidirectってのがなんとなくわかってきたかな、俺的に

2emu起動してみたけど
macaddress、ipaddress共に同じだった

directってのやりたいのなら、macaddressが同じだとまずいかも

emuで出来なくはないのだろうけど、中の人じゃないと無理かもね
部外者が出来ることは実機の動作をよく調べることかな
パケットダンプが出来ればいいかも
0548デフォルトの名無しさん2012/07/09(月) 00:37:57.98
>>543
layoutにidがないんじゃない?
setContentViewで別のlayout設定してるとか
0549デフォルトの名無しさん2012/07/09(月) 04:02:38.15
>>539
44,45,46のTextViewにカスタムフォントをセットしてやるだけだよね?
これなら初めてのリフレクション入門に丁度いいかなと思ったけど、
中々上手くいかん

44 private TextView mPrevText;
45 private TextView mCurrText;
46 private TextView mNextText;

05505432012/07/09(月) 04:17:08.93
>>546,548
レスありがとうです。layoutにはidは割り振ってます。
やりたいことは、表示されるダイアログのテキストを変更する動作です。
ダイアログ内のレイアウトは、LayoutInflater で自作レイアウトを適用させてます。

Activity継承クラス
http://pastebin.com/rBy9mdGa
xmlファイル
http://pastebin.com/qKtsqpSR
マニフェスト
http://pastebin.com/G3QRmLXn

デバッグすると、Activity継承クラスの42行目でぬるぽ中断しますです・・・
スタック
http://pastebin.com/VmVexyZ3
0551デフォルトの名無しさん2012/07/09(月) 04:37:42.10
>>549
うまくいかないのがリフレクションのところだったら、以下でいけるはず。
PagerTitleStrip strip = ...;
try {
 Field mCurrTextField = PagerTitleStrip.class.getDeclaredField("mCurrText");
 mCurrTextField.setAccessible(true);
 TextView mCurrText = (TextView)mCurrTextField.get(strip);
 // ごにょごにょ
} catch (NoSuchFieldException ex) {
} catch (IllegalAccessException ex) {
}

ただ、ProGuardかけてる場合はめんどくさいかも。
フィールド名が変わってしまわないように、-keep付けないといけなくなる。

よく考えたら、addViewされてるんだから、以下でいいはず。

int childCount = strip.getChildCount();
for (int i = 0; i < childCount; i++) {
 View view = strip.getChildAt(i);
 if (view instanceof TextView) {
  TextView textView = (TextView)view;
  // ごにょごにょ
 }
}
0552デフォルトの名無しさん2012/07/09(月) 05:05:57.39
>>550
22行目は
dlgLayout = inflater.inflate(R.layout.dialog_layout, null);
dlgText = (TextView)dlgLayout.findViewById(R.id.dialog_text);
じゃない?

LayoutInflater#inflate(int, ViewGroup)は、第2引数のViewGroupが
・=null: 第1引数のlayoutをインスタンス化したものを返す
・!=null: 第1引数のインスタンスを第2引数にaddした上で、第2引数を返す
http://developer.android.com/reference/android/view/LayoutInflater.html#inflate%28int,%20android.view.ViewGroup%29

ソースの22行目を見ると、第2引数にfindViewByIdしたViewGroupを指定してるけど
事前にsetContentViewしてないので、第2引数はnullじゃない?
なので、dlgLayoutがView階層にaddされていないので、23行目の戻りがnullになってるんだと思うけど。

あとついでに言うと
Dialogの表示はActivity#showDialogかDialogFragment使ったほうがいいよ。
それだと、縦横きりかえるとメモリリークするはず。
「android dialog リーク」あたりでググるといいよ。
0553デフォルトの名無しさん2012/07/09(月) 11:22:36.83
NativeActivityを使っていて、PreferenceActivityの設定画面を使ってる
サンプルはどこかにありませんでしょうか?
設定画面からBackキーで戻る所で躓いてしまいまして。
0554デフォルトの名無しさん2012/07/09(月) 11:49:10.01
教えて下さい。
MotionEvent.ACTION_DOWN発生時に円を描画させたいのですが、
どのようにさせればよいのでしょうか?
onDrawを使用すると起動時既に円が描画されています。
描画タイミングをこちらの任意で設定したいです。よろしくお願い致します。
0555デフォルトの名無しさん2012/07/09(月) 12:14:19.98
馬鹿には無理
0556デフォルトの名無しさん2012/07/09(月) 12:25:46.57
↑こういうのにレス付けられる人は本当にかわいそう
0557デフォルトの名無しさん2012/07/09(月) 12:52:56.06
>>554
public boolean onTouchEvent(MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN){}
}
の中でフラグ立たせてinvalidate();呼べ
onDrawでflag==trueのときに描画しろ
05585492012/07/09(月) 13:07:40.30
>>551
ここを参考にしてたんですけど
http://www.ne.jp/asahi/hishidama/home/tech/java/reflection.html#getDeclaredMethod(

PagerTitleStrip strip = ...; を
Class<PagerTitleStrip> strip = PagerTitleStrip.class;して

TextView mCurrText = (TextView)mCurrTextField.get(strip); の後のごにょごにょに、
以下を追加して終わりだと思ってたんですけど上手くいかないです。

Typeface typeface = Typeface.createFromAsset(
mContext.getApplicationContext().getAssets(), "フォントフォルダ/フォント名.ttf");
f(typeface != null && mCurrText!= null ) mCurrText.setTypeface(typeface);

下段のこっちの方も試してみようと思ったんですけど、
int childCount = strip.getChildCount(); ← PagerTitleStripで未定義ですと言われるし

上記をアクティビティのonCreate()直下に記述しているんですけど、
FragmentPagerAdapter内のpublic CharSequence getPageTitle(int position) {内で書くものなんでしょうか?
0559デフォルトの名無しさん2012/07/09(月) 15:49:46.89
質問です イメージボタンを透明にすることは出来ますが、
高速スクロールのボタンを透明化することは出来るでしょうか?
また、高速スクロールのボタンへイメージ画像を充てがう事は出来ますか?

0560デフォルトの名無しさん2012/07/09(月) 16:27:03.55
画像編集のアプリを作っています。
Viewに画像を表示してその画像の角をドラッグすることで拡大縮小や回転を行えるようにしたいのですがどのようにすればいいのでしょうか?
0561デフォルトの名無しさん2012/07/09(月) 16:46:12.56
ちょwおまwww
そこw機能の根幹じゃねぇかwww
それ人に聞いてどうするよwww
「ギター・ベース・ドラム・キーボード募集、当方ボーカル」かよwww
0562デフォルトの名無しさん2012/07/09(月) 16:48:54.69
スタジオもただで貸してくれる人を募集しています
0563デフォルトの名無しさん2012/07/09(月) 17:07:05.82
>>560
マルチタッチの2本指で拡大縮小回転する方がかっこよくない?
0564デフォルトの名無しさん2012/07/09(月) 17:47:04.51
>>558
AndroidってよりJavaの話になってしまうけど。

>>551の"strip"はPagerTitleStripオブジェクト。
Swipe Views + Title Stripのプロジェクトだと
PagerTitleStrip strip = (PagerTitleStrip)findViewById(R.id.pager_strip);
って記述してるやつ。

> Class<PagerTitleStrip> strip = PagerTitleStrip.class;
の"strip"はClassオブジェクト。
PagerTitleStripオブジェクトじゃない。
左辺の型が、PagerTabStripとClass<PagerTitleStrip>で違うよね?

ちゃんとPagerTitleStripオブジェクトが取得できれば、getChildCountも使えると思うよ。
PagerTitleStripはViewGroupのサブクラスだから。
0565デフォルトの名無しさん2012/07/09(月) 17:51:35.57
>>560
どのようにするかを考えるのがプログラミングです。
プログラミング質問はプログラミングしてからお願いします。
0566デフォルトの名無しさん2012/07/09(月) 18:14:55.99
アプリをバックグラウンドにして長時間放置。
その後起動するとフォアグラウンドだったActivityが作りなおされているように見える。
この時って、それまでスタックしていたActivityも順番に再生成されているのかな?
0567デフォルトの名無しさん2012/07/09(月) 18:28:22.24
autolinkでwebに飛べるようにしたときに内部ブラウザで開きたいんですが
autolinkしたurlはどのようにすれば扱えますか?
0568デフォルトの名無しさん2012/07/09(月) 18:32:12.17
>>566
フォアグラウンドな Activity がひとつだけ再生成される
Back キーで戻ると、戻った先の Activity がひとつだけ再生成される
0569デフォルトの名無しさん2012/07/09(月) 18:46:07.55
>>567
TextView#getText の戻り値が Spannable にキャストできると思うので、
その中から getSpans かなんかで URLSpan を探して削除し、
URLSpan#onClick をオーバーライドした独自のサブクラスをセットし直すといいんじゃないかなぁ
たぶん
0570デフォルトの名無しさん2012/07/09(月) 19:04:09.33
>>559
これは?
http://daichan4649.hatenablog.jp/entry/20111220/1324314528
0571デフォルトの名無しさん2012/07/09(月) 19:08:21.57
>>556
馬鹿には無理。特にお前みたいな馬鹿には一番無理
0572デフォルトの名無しさん2012/07/09(月) 19:14:19.27
>>571
ん?悔しすぎたかな?
05735432012/07/09(月) 19:35:04.85
>>552
レスありがとうございます。Dialog のメモリリークについての参考ページをggって読み漁ったのですが、自分が記述していたのはダイアログ管理も自分で行わないといけない記述の仕方だったのですね。
Activity#showDialog で Activity に任せたほうが楽で安全なので、showDialog で生成するようにしました。

ダイアログ内の TextView の文字列を、違う文字列で上書きする動作はまだ実現できていないのですが、ダイアログ内に表示されている画像やテキストなどは、動的に変化させることは無理なんですかね?
Activity#setContentView(R.id.layout.xml) で Activity にセットしたレイアウトの中にある TextView は上書き可能なのに・・・
inflateメソッドでレイアウト追加しているところが臭いので、少しだけ自力で探ってみます。
0574デフォルトの名無しさん2012/07/09(月) 19:45:00.71
>>573
おk
役に立って何より
05755662012/07/09(月) 20:11:44.12
>>568
なるほど。
じゃあ、ActivityAがBを起動したことを
boolean isBCreated = YESとかメンバ変数で持つとかはアウツなんですね。
アプリがバックグラウンド中にA,Bが破棄されて、
B復帰 -> 戻る -> A復帰 isCreated = NOに戻ってる?
0576デフォルトの名無しさん2012/07/09(月) 20:13:27.10
>>575
破棄されるときにデータを一時的に保存するあれを使ったらいいんじゃない?
05775662012/07/09(月) 20:26:03.21
>>576
savedInstanceStateですよね・・・
むーん。この辺iOSに比べて難しいなあ。
要するにアプリがバックグラウンドになったら、というよりは
Activityがバックグラウンドになったら、いつメモリから消えるかわからないと
考えるのがいいかな。
バックグラウンドのActivityを破棄をエミュレートできれば確認が楽なのだけど・・・
0578デフォルトの名無しさん2012/07/09(月) 20:29:04.85
連投すみません。
http://developer.android.com/reference/android/app/Activity.html#ProcessLifecycle
この辺読んだのですが、まだわからないことがあります。
アプリがバックグラウンドになったとき、
* スタックされているActivityのみがメモリから破棄される
* アプリのプロセスそのものが破棄される
の2パターンがあるのでしょうか?
それとも後者のみで、そのときはフロントエンドだったActivityのみが
savedInstanceStateを使って復帰され、
戻るを押すと前のActivityもsavedInstanceStateを使って復帰される。
という理解が正しい?
0579デフォルトの名無しさん2012/07/09(月) 21:11:15.57
うん
それでOK
0580デフォルトの名無しさん2012/07/09(月) 21:16:40.07
しかしおおまかな概要がわからないと手も足もでないわな
よくある画像をバウンディングボックスで拡大縮小とか
どうやるのかさっぱりだよ
あれはとりあえず画像の上に操作できる枠を表示させてるだけで
処理は4点の座標からわりだしてやるっていうふうなのかな?
0581デフォルトの名無しさん2012/07/09(月) 21:24:33.93
>>577
乱暴だけどこんな確認方法がある
1. アプリを Eclipse からデバッグモードで起動する
2. アプリをバックグラウンド化する
3. アプリを Eclipse の DDMS から強制終了する
4. アプリをフォアグラウンドに戻す
0582デフォルトの名無しさん2012/07/09(月) 22:41:13.21
>>570
おー、サンクス!
0583デフォルトの名無しさん2012/07/09(月) 22:43:01.42
>>539
質問者じゃないけど凄い為になった
0584デフォルトの名無しさん2012/07/09(月) 22:50:40.97
XMLで作成したImageButtonに押したときなどに
透過画像の縁と同じ形(☆なら☆の縁取り)に縁取りをつけたいのですが
縁の画像を用意せずにShapeなどで表現できるでしょうか
05855772012/07/09(月) 22:55:34.04
みなさん親切に回答有難うございます。
もう1点質問があります。
アプリケーション全体で参照するデータの扱いは、
シングルトンかApplicationクラスを拡張するか・・・
が、自分はどちらもNGではないかと思っています。
プロセスが死んだらメモリの内容は消えます。けれど復帰は前回のアクティビティから。
途中経過をメモリに保持するのは良くないのではないかと。
よって、そういうデータはSharedPreferenceに保存して、
アプリケーション起動時に初期値に戻すべきものは最初に起動するActivityのonCreateで行うのが、
良いかと思うのですがいかがでしょうか?
0586デフォルトの名無しさん2012/07/09(月) 23:04:31.99
アプリケーション起動時に初期値に戻すべきものってなんか不自然な気がするような
0587デフォルトの名無しさん2012/07/10(火) 00:33:15.03
>>564
出来たー!ホントありがとう!>>583の言う通りホント勉強になりますw
0588デフォルトの名無しさん2012/07/10(火) 00:42:19.22
質問なんですけどSDK 20 使ってる人でプロジェクト作る時にActivityの生成?のところで
Done Loading Packages
で止まるんですけど同じ症状の方います?
0589デフォルトの名無しさん2012/07/10(火) 02:42:21.54
質問があります
ImageViewから継承してサブクラスを作成したのですが、
レイアウトのxmlでandroid:src指定したソースは取得できるようになったのですが、
ActivityからsetImageResourceでセットしたイメージサイズを得たい時にはどうすれば可能ですか?
BitmapDrawable src = (BitmapDrawable) this.getDrawable();
とやっても、最初にandroid:srcで指定したイメージのサイズしか取得できません。
よろしくお願いします。
05905642012/07/10(火) 09:05:37.59
>>587
いえいえ、どう致しまして
0591デフォルトの名無しさん2012/07/10(火) 09:14:12.03
カメラアプリを作成中なのですが
regza t-01c で画像サイズ854×480で写真を撮ると
撮った時の静止画像が乱れます(保存される画像は普通に取れます)
他の解像度では上記の現象は起きません。
原因、プログラム的な回避策がわかる人がいましたら教えてください。
お願いします。
0592デフォルトの名無しさん2012/07/10(火) 09:40:10.08
>保存される画像は普通に取れます
??
0593デフォルトの名無しさん2012/07/10(火) 09:42:24.05
画像を圧縮してjpgで保存するプログラムって自分で作るの?
それとも用意してあるの?
0594デフォルトの名無しさん2012/07/10(火) 09:56:50.50
「露骨に数字が下がるんです」ついにフジテレビの“K-POP離れ”が始まった!?


いよいよ日本での韓流ブーム終焉の日が近づいている。親韓流、親K―POPの急先鋒とみられているフジテレビ内部からも「まったく視聴率が取れない……」と弱気な声が漏れており、撤収のムードが漂い始めているという。
昨年、高岡蒼佑がTwitterで行ったフジテレビの韓流ゴリ押し批判をキッカケに、韓流・K-POPに嫌悪感を示す層が、インターネット上を中心に形成された。
その流れは根強く、先月には兵庫県でKARAや超新星らが出演するイベントが、チケットの売り上げ不振を理由に中止に追い込まれたほど。
それでもテレビでは「K-POPブーム」と称して相変わらずプッシュしていたが、もはや不人気は隠せない段階に入った。
ついには、フジテレビ内からもK−POPの不人気ぶりを嘆く声が漏れている。
「今K-POPアイドルを番組に出すと、露骨に数字(視聴率)が下がるようになってしまいました。
まだKARAや少女時代などの下がり幅はマシな部類ですが、あまり名前の知られていないグループだと、本当にひどい。
さすがにスタッフは頭を抱えていますよ。これまでのように、K-POPや韓流ブームと騒いでいられなくなる日は近いでしょう」(フジテレビ関係者)
この関係者が話すように、露骨なK-POP推し自粛は番組編成にも表れている。
例えば、7月9日に2時間特番として放送予定の『夏が来た!!HEY!HEY!HEY!お台場“生”の歌祭り』。
昨年ならば有名無名問わず、複数のK-POPグループがブッキングされるというケースが多かったが、今回韓国アーティストで出演を事前告知されているのは東方神起だけ。
8月8日の『FNSうたの夏まつり』にも、今のところK-POPアーティストの名前はない。
民放キー局関係者は「すでに『ミュージックステーション』を持つテレビ朝日も、K-POPと距離を置くことを決めたといいます。
必要以上にK-POPアーティストを出さないということですよ。数字が取れない上に、ネットであらぬ批判を受けてしまいますから、仕方ないですね」と耳打ちする。
今年も日本でのヒットを目指して多くの韓流アイドルがやって来ているが、現実はあまりにも厳しいと言わざるを得ないだろう。

http://www.cyzo.com/2012/07/post_10950.html
http://engawa.2ch.net/test/read.cgi/poverty/1341880283/
0595デフォルトの名無しさん2012/07/10(火) 10:54:07.13
webviewでGoogle検索の履歴が表示されないんですが何か設定が必要なのでしょうか?
0596デフォルトの名無しさん2012/07/10(火) 10:56:43.07
JavaScript を有効にしてないとか
0597デフォルトの名無しさん2012/07/10(火) 10:58:29.76
>>569
ありがとうございます
私にはまだ理解できないのでまた勉強してから参考にさせて頂きます
0598デフォルトの名無しさん2012/07/10(火) 11:28:44.13
>>593
Bimap.compress (Bitmap.CompressFormat.JPEG, 100, xxxxx.jpg);
戻り値はbooleanで変換の成否
05995952012/07/10(火) 13:08:52.70
>>596
有効にしても駄目でした
何かしら実装しないといけないのですかね?
0600デフォルトの名無しさん2012/07/10(火) 13:10:32.90
>>589
setImageBitmap してないんじゃね?
0601デフォルトの名無しさん2012/07/10(火) 14:07:35.79
>>572
大切な事なのでもう一度言います。

馬鹿には無理。特にお前みたいな馬鹿には一番無理
0602デフォルトの名無しさん2012/07/10(火) 15:08:45.87
(悔しいから)大切な事なので(ry
0603デフォルトの名無しさん2012/07/10(火) 16:34:42.47
ActivityManagerの
・getRecentTasks
・getRunningTasks
・getRunningAppProcesses
で取得される値の違いがいまいちよく分からない(SDKも読んだけど余計に分からなくなってしまった)
どう違うか教えてください。
0604デフォルトの名無しさん2012/07/10(火) 18:27:03.29
俺の理解するところによれば、
Recent と Running の違いは、 Recent は終了したものも含むが Running は実行中のものだけ
Task と Process の違いは、タスクはユーザーの見た目的なものでプロセスは OS 上の内部的なもの
例えばメーラーから添付ファイル選択でギャラリーを呼び出したらギャラリーとメーラーは別のプロセスだけどもユーザーの見た目的にはメーラータスクの一部
ホーム画面に戻って新たにギャラリーを起動するとこれは当然さっきのメーラーとは別のギャラリータスクだけどプロセス的にはメーラー上のギャラリーと新たに開いたギャラリーは同じプロセス上で動作している
■ このスレッドは過去ログ倉庫に格納されています