トップページ⇒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/
0438デフォルトの名無しさん2012/07/06(金) 00:08:16.88
>>434
こんなのあるんだ。多分、最後はremoteView.addView(id,view)するんだろうけど、
二番目のviewの引数って何のviewを指定するんだ?
0439デフォルトの名無しさん2012/07/06(金) 00:16:40.76
>>438
親ビュー(remoteView)が内包してる子ビューのIDが第一引数
そのIDのビューの中に第二引数のviewをaddする仕組み
ちなみにレイアウトアニメーションはRemoteViewsクラスを使ってアニメーションさせたりできないのでレイアウトxmlファイルに予め記述しておくしかない
0440デフォルトの名無しさん2012/07/06(金) 00:22:45.13
>>439
ウィジェットのimegeを切り替える毎にフェードインさせたいんだが、
そう言うのは無理なのか?
0441デフォルトの名無しさん2012/07/06(金) 00:27:04.31
xmlで書けばできるんじゃない
0442デフォルトの名無しさん2012/07/06(金) 00:31:22.74
>>441
ウィジェット立ち上げると一度しかフェードインしない…
<LinearLayout
android:layoutAnimation="@anim/layout_animation"
略>
<ImageView
android:id="@+id/image"
略/>
</LinearLayout>
0443デフォルトの名無しさん2012/07/06(金) 00:32:16.36
>>440
アニメーションは一度しか起動されないので、またアニメーションをさせたかったら再度
AppWidgetManager#updateAppWidget(appWidgetId, remoteViews);
をするしかないわけなんだが
>>440のことがしたいなら、imageを切り替えるたびにupdateWidgetすると思うから特になにも考えなくてもいいと思うよ

まあまずは適当なプロジェクト作ってアニメーションするウィジェットを作ってみるといいよ
RemoteViewsもLayoutAnimationもクセがあるんで自分で確認したほうが早い
0444デフォルトの名無しさん2012/07/06(金) 00:37:16.26
>>442
画像切替えるタイミングで
RemoteViews root = new RemoteViews(context, layoutId);
root.removeAllViews();
// ここでimageviewに画像をセット
manager.updateWidget(appWidgetId, root);

画像切替のタイミングはアラームマネージャかなんかで制御してるの?
0445デフォルトの名無しさん2012/07/06(金) 00:44:52.70
>>444
切り替えはボタンでやってるよ。家に帰ったら早速トライしてみる!あんがと。
0446デフォルトの名無しさん2012/07/06(金) 00:47:35.65
>>444
やはりウィジェットのボタンです。
removeAllViews()するとボタンまフェードインしちゃう感じですかね?w
0447デフォルトの名無しさん2012/07/06(金) 00:48:32.19
>>445
あ、すまん。>>444の方法だとremoveAllViewsしたタイミングでImageView消えちゃうわ
だからLinearLayoutとImageViewをわけてxml作って対処してくれ
0448デフォルトの名無しさん2012/07/06(金) 00:50:31.23
>>446
ボタンが>>442のLinearLayoutの下にあったら一緒にアニメーションするが、させたくないなら外に出せばいい
0449デフォルトの名無しさん2012/07/06(金) 01:54:32.38
>>448
何故だろう。imageは無事フェードインするようになったけど逆にボタンが消えてしまうw
こんな書き方だと駄目なんだろうね。やっぱり。

Widget.xml
ーーーーーーーーーー
image.xml指定
ボタン
ーーーーーーーーーー

image.xml
ーーーーーーーーーー
android:layoutAnimation="@anim/layout_animation"
image.id
ーーーーーーーーーー

ボタンのView
RemoteViews view = new RemoteViews(context.getPackageName(), R.layout.widget);
イメージのView
RemoteViews view2 = new RemoteViews(context.getPackageName(), R.layout.iamge);

view2.removeAllViews(R.layout.image);
view2.setImageViewUri(R.id.iamge, uri);

manager.updateAppWidget(widget, view);
manager.updateAppWidget(widget, view2);
0450デフォルトの名無しさん2012/07/06(金) 02:08:50.24
Widget.xmlのほうimage.xml指定しなくていいから、LinearLayout配置してid付与して
view.addView(id, view2);
してくれ
manager.updateAppWidget(widget, view2); ←これいらない
0451デフォルトの名無しさん2012/07/06(金) 03:12:27.47
>>450
こういう事か。ようやく上手くいった。助けてくれた方々ありがとう!
結構フェードインいれるだけで印象変わったわw

RemoteViews view = new RemoteViews(context.getPackageName(), R.layout.widget);
RemoteViews view2 = new RemoteViews(context.getPackageName(), R.layout.image);
view.removeAllViews(R.id.ll);
view2.setImageViewUri(R.id._image, uri);
view.addView(R.id.ll, view2);

よく考えるとここら辺はsetContentView()にaddViewするのとあまり変わらないのか。
仕様がチグハグだなウィジェット周りは。
0452デフォルトの名無しさん2012/07/06(金) 11:03:50.23
1と2の間になるべく空きスペースを作りたくありません。
1が1行の時、2行指定を解除するような事をxmlで指定出来ないでしょうか?

TextView1(line = 2)   ああああああああ (1行の場合)
(空きスペース)      いいいいいいいい
TextView2         うううううううう
TextView3
0453デフォルトの名無しさん2012/07/06(金) 11:08:14.10
maxLines = 2
0454デフォルトの名無しさん2012/07/06(金) 11:42:17.60
>>453
ありがとうございます。
0455デフォルトの名無しさん2012/07/06(金) 14:34:07.52
MapViewについて質問です。
+-ボタンを押すかピンチ操作で地図を拡大縮小するときに地図がぐいんぐいんとアニメーションしますが、
「拡大縮小アニメーションが終了した瞬間」または「拡大縮小アニメーション中であること」を取得する方法はないでしょうか?
0456デフォルトの名無しさん2012/07/06(金) 14:54:49.37
継承したらできるみたいだけど
http://d.hatena.ne.jp/sei10sa10/20110801/1312191680
0457デフォルトの名無しさん2012/07/06(金) 16:06:59.01
>>456
ありがとうございます。
ご提示いただいた方法でできました。
0458デフォルトの名無しさん2012/07/06(金) 16:42:18.92
SurFaceView内でテキストのサイズが一定以上オーバーした際に、
オーバーした分を削除し末尾に…を貼付ける様にしたいのですが、
下だと高確率でエラーが出ます。安定した方法ってないですか?

if( TextSize >= MainActivity.disp.getWidth()/2 ){
while( x > MaunActivity.disp.getWidth()/2){
StringBuffer sb = new StringBuffer(_text);
x = sb.length()-1;
sb.deleteCharAt(x);
_text = sb.toString();
float textWidth = paint.measureText(_text);
int textCounter = (int)textWidth;
int textSize = Math.abs(textCounter);
x = textSize;
}
StringBuffer sb = new StringBuffer(_text);
x = sb.length();
sb.insert(x, "…");
_text = sb.toString();
}
}
0459デフォルトの名無しさん2012/07/06(金) 17:07:52.47
高確率でエラーとはどういうことですか?
表示される文字によってエラーが出たり出なかったりするのでしょうか?エラーが起きない場合もあるのですか?
具体的に投げられたエラーは何ですか?

エスパー待ちになりますよ
0460デフォルトの名無しさん2012/07/06(金) 17:19:11.59
sb.length()が0の時とか考慮してないんじゃないの
0461デフォルトの名無しさん2012/07/06(金) 17:23:42.62
>>459
あ、すみません。どんな文字でも10回に半分位かちょっと少なめで以下のように。
Logを見ると、当該個所は>>458しかないと言う状況です。

E/Surface(17393): Surface::lock failed, already locked
E/SurfaceHolder(17393): Exception locking surface
E/SurfaceHolder(17393): java.lang.IllegalArgumentException
E/SurfaceHolder(17393): at android.view.Surface.lockCanvasNative(Native Method)
E/SurfaceHolder(17393): at android.view.Surface.lockCanvas(Surface.java:314)
E/SurfaceHolder(17393): at android.view.SurfaceView$3.internalLockCanvas(SurfaceView.java:767)
E/SurfaceHolder(17393): at android.view.SurfaceView$3.lockCanvas(SurfaceView.java:746)
E/SurfaceHolder(17393): at net.paka.MainActivity.GraphicsSurface.run(GraphicsSurface.java:77)
E/SurfaceHolder(17393): at java.lang.Thread.run(Thread.java:1019)
0462デフォルトの名無しさん2012/07/06(金) 17:24:38.83
それと同じ文字でもなったりならなかったり。
0463デフォルトの名無しさん2012/07/06(金) 17:32:16.97
>>460
TextSizeにキャストする前のStringに対してnullチェックは行ってるので、
lengthが0は無いかと。他のActivityからStringをstatic参照してるのが、
悪いとかあるんですか?みなさんどうしてます。Bundleして渡した方がいいとかありますか?
0464デフォルトの名無しさん2012/07/06(金) 17:34:37.44
>>458のコードをコメントアウトしたら>>461の例外発生しなくなる?
0465デフォルトの名無しさん2012/07/06(金) 17:37:04.38
>>461
E/SurfaceHolder(17393): at net.paka.MainActivity.GraphicsSurface.run(GraphicsSurface.java:77)
これかな? 77行目ってどこ?
0466デフォルトの名無しさん2012/07/06(金) 17:44:26.95
例外投げてる箇所って自分で書いたコードじゃないだろ
そのコードと発生個所にどう関連が有るんだよ
0467デフォルトの名無しさん2012/07/06(金) 17:46:52.92
E/SurfaceHolder(17393): java.lang.IllegalArgumentException
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/IllegalArgumentException.html

不正な引数、または不適切な引数をメソッドに渡したことを示すためにスローされます。
0468デフォルトの名無しさん2012/07/06(金) 17:47:32.43
>>464
コメントアウトしても発生しちゃいました…。Log仕込んだらそこで止まるので、
そこしかないと思ってたんですけど…。

>>465
>>458のコードは100行目あたりなので、77行目はDrawableな画像を表示するcanvasです。
なのでnullとかは絶対にならないですよね。

ちょっといろんな所にLog仕込んだりコメントアウトしてみます。
0469デフォルトの名無しさん2012/07/06(金) 17:48:19.29
ブラケットが対応してないしTypoっぽいところもあるし
コンパイルできてる?
質問のために作ったコード?
04705262012/07/06(金) 17:48:43.30
>>461
とりあえずunlockCanvasAndPostはfinallyでやったほうがいいと思うよ。
やってないから、例外が発生したときにunlockされなくて、already lockedになってるんじゃないの?
http://d.hatena.ne.jp/g1rolamo/20101012
0471デフォルトの名無しさん2012/07/06(金) 17:59:15.34
>>468
とりあえず77行目に書いてるコードのメソッドの引数を疑うべきだと思う
0472デフォルトの名無しさん2012/07/06(金) 18:08:27.14
>>469
ちゃんとコンパイル出来ますし、半分位の確率で正常に動きますよw
一度、問題なく表示できたら、その後は一切問題が発生しません。
インストール後、失敗に終わったらもう駄目なんですよ。可笑しいですよね。

>>470
了解です。ちょっとやってみます。
そう言えば、この前、このクラスでUriの画像をBitmapにしたら、
全く表示されずにalready lockedされたんですよ。

>>471
これがエラーになるとは、ちょっと考えられないです。
private Bitmap img = BitmapFactory.decodeResource(res, R.drawable.image);
77行目 canvas.drawBitmap(img,getWidth()-300,getHeight()/3-5,paint);
0473デフォルトの名無しさん2012/07/06(金) 18:16:09.74
お前の代わりにデバッグして欲しいならソースを全部だせってことだよね
0474デフォルトの名無しさん2012/07/06(金) 18:21:14.32
そういうこと書くと真に受けて、100レスくらい延々とソース貼り付けられるぞ
0475デフォルトの名無しさん2012/07/06(金) 18:23:20.86
http://pastebin.com とかでおk
アフォと無意味なやり取り繰り返すよりはまし
0476デフォルトの名無しさん2012/07/06(金) 18:52:03.45
>>473
458のコードで特に問題がないのであれば、
後は無難なコードの羅列なので、一旦全部コメントアウトして
問題の箇所を割り出すだけだから大丈夫だよ。ありがとうございました。
0477デフォルトの名無しさん2012/07/06(金) 18:57:50.60
呼び出し元のメソッドが何かを判別するメソッドというのは元々用意されてるのでしょうか?
たとえば、onAlpha()、onBravo()、onCharlie()の3つのメソッド
の中でonDelta()を呼び出した時に、
3つのうちどのメソッドから呼ばれたのかを判別したいです。
0478デフォルトの名無しさん2012/07/06(金) 19:03:03.48
Thread.currentThread().getStackTrace()
0479デフォルトの名無しさん2012/07/06(金) 19:13:29.74
>>478
ありがとうございます。
0480デフォルトの名無しさん2012/07/06(金) 19:19:53.85
歌手キム・ジャンフンが日本の反韓流の雰囲気を強い調子で非難した。

キム・ジャンフンは23日午前、自身のミニホームページに「徐々に小さくなる日本」
という題名の文を載せ日本の反韓勢力に対し不快感を示した。

キム・ジャンフンは「最近日本で反韓流記事がたくさん出ている。チャン・グンソク氏や
キム・テヒ氏に対する記事を見ながらこれが本当に先進国であり大国を自任する日本の現実なのかと驚いた」と切り出した。

続けてキム・ジャンフンは、「キム・テヒ氏は日本のネットユーザーらの激しい抗議で行事を取り消したという。
こうしたことがまさに日本が沈み反対に進んでいるという反証だ。トレンドを読めず国際競争力を失った日本企業は
現在危機を迎えている。甚だしくはマニュアルの日本と呼ばれた国が論理を失い過激になった」として
日本の反韓ムードを強い調子で非難した。

また、キム・ジャンフンは「知韓派といっていた日本の水野教授、日本に帰って嫌韓の中心になったが
彼に被害が及んだことがあるだろうか? 嫌韓記事を浴びせる産経新聞の黒田氏を私たちが害しただろうか? 

36年間わが国を強占し凌辱した日本だが、わが国民は日本の地震被害に温情と愛を送った。
それでも日本は教科書問題でわれわれの後頭部を叩いた。
その時私たちが韓国にいる日本人に脅威を加えただろうか?」と話した。

引き続きキム・ジャンフンは「韓国コンプレックスにとらわれた日本、
あなたたちの残っている良心に最後の望みをかけてみる」として日本の反韓勢力に呼びかけた。

一方、キム・テヒは21日に日本で開く予定だった化粧品のCMモデル発表会が前日になり突然取り消される状況を体験した。
チャン・グンソクは連日続く悪意の報道で疲弊することもした。
http://japanese.joins.com/article/564/148564.html?servcode=700§code=740
0481デフォルトの名無しさん2012/07/06(金) 19:54:59.20
だれか>>405解る人いない?
0482デフォルトの名無しさん2012/07/06(金) 20:21:54.08
ここはレベル低いから難しいと思うぞ。
俺が答えてやりたい所だが、いまから用事があるんだわ
0483デフォルトの名無しさん2012/07/06(金) 20:37:47.24
>>482
なるほど。じゃ、少し質問を変えてitemsを保存&呼び出す方法ってないですか?
これが出来れば何とかなりそうな気もしないでもないんですけど。

 @Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);

   items = new ArrayList<Object>();をsaveInstance

  }
0484デフォルトの名無しさん2012/07/06(金) 20:54:22.29
>>483
Parcelable
0485デフォルトの名無しさん2012/07/06(金) 21:11:58.94
>>484
おお。これでFragmentのonCreateViewで呼び戻せば結果オーライのような。
0486デフォルトの名無しさん2012/07/06(金) 21:22:33.54
>>476
もう見てないかもしれないけど。
Paint#measureTextより、Paint#breakTextのほうが
やりたいことが簡潔にできそうな気がする。

あと、もしかしてGraphicsSurface#run()の中でcatch Throwableしてない?
もしそうなら、危険なのでやめたほうがいいよ。

>>485
もし結果オーライにならないようなら
一度traceviewで調べたほうがいいかもしれない。
すでに調べた結果の書き込みなのであれば、ごめんなさい。
0487デフォルトの名無しさん2012/07/06(金) 23:12:55.72
AsynkTaskでコンテントプロパイダから画像を取得し、
itemsのimageに突っ込みたいんですけど良い方法ありますか?
AsynkTaskを使っているサイトを見てても、どうすれば良いのか分からず途方にくれてます。

MainActivityでコンテントプロパイダから文字情報を取得   MainActivity#ListViewで表示
items.add( imageUri、textView、textView…);
↓                                  ↑ 
独自リストアダプター           →           一行完成

↑(この様にしたい)
AsynkTaskでコンテントプロパイダから画像のUriを取得、
それをitemsにadd
0488デフォルトの名無しさん2012/07/07(土) 00:07:32.00
>>486
traceviewでは調べてないんだけど、
FragmentAdapterって使われていないFragmentは必ず破棄するから、
調べるまでもないかな?と思ってたんだけどParcelableやって駄目なら
一度調べるのもありかもね。
0489デフォルトの名無しさん2012/07/07(土) 00:14:10.66
K-POPを買っていたのは在日だった!!! 誰だよ、日本人に人気とか言ってたやつwwww
http://engawa.2ch.net/test/read.cgi/poverty/1341580183/


「在日韓国人同士の派閥争いに巻き込まれた!?」K-POPライブ頓挫“払い戻しナシ”の裏事情

チケットを買ったのにイベントは中止、それだけでなく代金も戻らないという最悪の事態だった。
「K-POP IN 豊岡・神鍋高原」
イベントに関わっていた広報関係者によると「主催者は、K-POPイベントは“やれば儲かる”という
確証もないウワサを信じ込んでいる様子だった」と話す。
「KARAが出るだけでテレビ番組の視聴率が1〜2%上がるとか、そんな話をしている人がいましたからね。
約1万人収容の会場が、最低でも7割は簡単に埋まると豪語していたり……」(同)
しかし、一方では複雑な人間関係のトラブルも浮上していたという。

「応援してくれるのはやはり在日韓国人の方々が多く、まとめて数千枚のチケットを引き受けると言ってくれていた在日実業家も
複数いたんです。でも、そういった方々の間では派閥のようなものがあるらしく“●●(タレント名)が出演するなら応援しない”とか
“■■(実業家の名前)が関わるなら協力できない” といった話が次々に出てきて、調整に苦労していたようです。
当初、大口でチケットを請け負ってもらうはずだった販売代理店にも、そんな感じで背を向けられていました」(同)

詳細 2012年7月5日 08:10 (サイゾー)
http://topics.jp.msn.com/wadai/cyzo/article.aspx?articleid=1174001


0490デフォルトの名無しさん2012/07/07(土) 01:03:17.20
>>487
やっぱりこういう方法は無理ですか?
0491デフォルトの名無しさん2012/07/07(土) 02:06:30.49
別に無理なことはない
doInBackground で読み込んで publishProgress で送り出して onProgressUpdate で add するとか
だいたいそんな感じでいいんじゃない
0492デフォルトの名無しさん2012/07/07(土) 02:44:10.59
>>488
自分がよくわかってないのかもしれないけど。

FragmentPagerAdapterって
getItemで取得したFragmentをメモリに保持する
(タグ付きでFragmentTransaction#addする)から
破棄ってされないと思うんだけど。
FragmentStatePagerAdapterだったらstateしか保持しないから
破棄ってのもわかるんだけど。

ごめん、おかしなこと言ってたら、指摘してほしい。
0493デフォルトの名無しさん2012/07/07(土) 02:56:45.45
初めまして
Androidでゲーム開発を行っているものです
ゲームのメインスレッドとOpenGLのスレッドが分かれている状態で
テクスチャーを読み込むためにglSurfaceView.queueEventを使って読み込もうとしたところ
以下の関数の●のところでnullpointerexception止まってしまいました
GLRendererのonSurfaceChangedで読み込んだときは出なかったので原因がわかりません

public static final int loadTexture(GL10 gl, Resources resources, int resId){
 int[] textures = new int[1];
●gl.glGenTextures(1, textures, 0);
以下省略
0494デフォルトの名無しさん2012/07/07(土) 03:31:28.07
同一PC上でエミュを2つ起動し、エミュ同市をWiFiで認識させたいんですが、可能でしょうか?

下のサイトを参考にしたのですが、どうもやり方がわかりません。
http://www.techdoctranslator.com/android/developing/tools/emulator#connecting
そもそも、仮想で別々のルータとして起動しているとのことなので、通信することはできても同一LANとして認識させるのは無理なのでしょうか。
0495デフォルトの名無しさん2012/07/07(土) 08:40:36.66
つ SoftEther
0496デフォルトの名無しさん2012/07/07(土) 11:14:57.52
>>491
AsynkTaskを使った場合、Activity側で追加していたaddImage())を
どうやって追加していけば良いのか分からないのです。

AsynkTask実装前
do{
  コンテントプロパイダから文字情報や画像を取得
items.add(TrackListAdapter.addText().addText().addImage());
}while(c.moveToNest());

AsynkTask実装後
do{
  コンテントプロパイダから文字のみ情報
items.add(TrackListAdapter.addText());
}while(c.moveToNest());
0497デフォルトの名無しさん2012/07/07(土) 11:20:49.69
いじめ自殺の起きた大津市某中学の素敵な学習内容

http://cdn.uploda.cc/img/img6946.jpg
http://libdspace.biwako.shiga-u.ac.jp/dspace/bitstream/10441/5193/1/fuchukiyo51
0498デフォルトの名無しさん2012/07/07(土) 11:23:37.67
大津市いじめ殺人の裏にある異常なカリキュラム内容。韓国文化と韓国語を強制
http://engawa.2ch.net/test/read.cgi/poverty/1341626373/
0499デフォルトの名無しさん2012/07/07(土) 11:51:05.31
Fragmentはインスタンスが保持されていたとしても、
画面に付けたり外したりする時点でライフサイクルの一連のアレ
(onAttach()とかonCreate()とか)
が走ってしまうんじゃなかったっけ?
それで時間かかるならどうにもならんのでは。

ViewPager使ったこと無いから仕様が分からんけど。
0500デフォルトの名無しさん2012/07/07(土) 11:55:37.61
1400年前から皇子山坂本あたりは新羅の勢力が強い所
http://www.geocities.jp/hieisankei/stage06_02.html
0501デフォルトの名無しさん2012/07/07(土) 12:06:54.01
>>499
onDestroyが走るハズじゃなかったっけ?
このスレで人気ないよねFragment系はw 難しいだけにw
0502デフォルトの名無しさん2012/07/07(土) 12:07:50.29
以下のようにアラームを設定しています。ここが呼ばれたら以前に設定している
アラームを破棄して、新設定でアラームを登録するようにしたいのですが
どうも複数アラームがたまってしまっているようなのです。
何か間違っていますでしょうか?
long schedTime = System.currentTimeMillis() + m_BaseApp.GetSleepTime( m_SleepIndex );
Intent intent = m_BaseApp.CreateAppIntent();//new Intent( m_Activity, m_Activity.getClass() );//WebViewEx.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pi = PendingIntent.getActivity( m_Activity, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT );
AlarmManager alarmManager = (AlarmManager) m_Activity.getSystemService( Context.ALARM_SERVICE );
alarmManager.set( AlarmManager.RTC, schedTime, pi );
System.exit( Activity.RESULT_OK );
0503デフォルトの名無しさん2012/07/07(土) 13:09:47.63
ほう
0504デフォルトの名無しさん2012/07/07(土) 13:13:34.74
>>496
ttp://lablog.lanche.jp/archives/220
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使うのと大差ないよ
■ このスレッドは過去ログ倉庫に格納されています