Androidプログラミング質問スレ Part25at TECH
Androidプログラミング質問スレ Part25 - 暇つぶし2ch350:デフォルトの名無しさん
12/09/17 20:04:36.51
ホームボタン押した時にデータを保存するだけならonpause()、onstop()、onuserleavehint()、onuserinteraction()、onsaveinstacestate()

URLリンク(y-anz-m.blogspot.jp)

それからキーイベントの取得はonattachedtowindow()をオーバーライドしてからやれば出来る

URLリンク(stackoverflow.com)

昨日も言ったけどgoogleはやらないでくれって公言してるし、マルウェアと勘違いされる事もあるらしいから、やっぱりキーイベントはやめた方が良いよ。
素直にpauseかstopで良いじゃん。しつこいよ

351:デフォルトの名無しさん
12/09/17 20:14:05.67
TimerのscheduleAtFixedRate()を使って繰り返し処理をしたいのですが、
端末がスリープモードになった時、指定した時間ごとに処理が実行されません。
指定した時間より後に複数回分の処理が纏めて実行されます。(時間のかかる処理ではないです。)

スクリーンを常時ONにすればキチンと動作するのですが、
スリープモードでも同様に動かす方法はないでしょうか?

timer = new Timer(true);
timer.scheduleAtFixedRate(new TimerTask() {
public run() {

// 繰り返し処理

}
}, 0, 5000);

352:デフォルトの名無しさん
12/09/17 20:29:35.38
>>351
にわかなので私の作った方法が合ってってのか分からないけど

タイマーをサービスで動かすってのはいかが?

メインアクティビティとインテントの応報で
実装がややこしくなるのが難点なんですが・・・

353:デフォルトの名無しさん
12/09/17 21:05:21.98
質問させてください
URLリンク(techbooster.org)
このサイト様を参考にさせてもらいながら進めていったのですが

DropboxAPIクラスのメゾットの利用方法がわかりません...

サイト様では FileActionMenuActivity.java を編集するとなっているのですが
新規でプロジェクトを立ち上げた場合ではどの部分にあたるのでしょう?

354:デフォルトの名無しさん
12/09/17 21:48:34.94
>>350
それらはHomeキーが押されたとき以外も呼ばれるからHomeキーが押されたときにしか処理したくない処理を実装するのには不向き

355:デフォルトの名無しさん
12/09/17 21:51:17.28
>>351
・Wakelockを使ってスリープさせないようにする
・AlarmManagerを使ってスリープ中でもイベントを起こすようにする

タイマーの間隔や継続時間等で適当な方をどうぞ

356:デフォルトの名無しさん
12/09/17 22:30:00.16
なんか目的と手段がごっちゃになってる気がするけど…

357:デフォルトの名無しさん
12/09/17 22:47:51.46
>>354
バックキーならセーブ出来たけどホームキーではセーブ出来なかったから両方ともセーブ出来るようにしたいんだろ?pauseとstopの何がダメなの?

358:311
12/09/17 22:51:13.84
>>349

ホームキーのハンドリング
ぐぐったら普通にでてきたけどこれでいい?

URLリンク(y-anz-m.blogspot.jp)


359:デフォルトの名無しさん
12/09/17 23:29:41.04
>
↑こういうエスケープ?された文字の戻し方を教えて下さい

360:デフォルトの名無しさん
12/09/17 23:32:31.77
unescapeurl とか・・・

361:デフォルトの名無しさん
12/09/17 23:48:42.30
何が聞きたいの?
エスケープシーケンス?
unicode?
ヒント少な過ぎて、さっぱり分からん

362:311
12/09/18 00:03:06.64
>>361
おれにはわかるぞ。
>>359のいいたいことが・・・

たぶんHTMLデコードしたいんじゃないか?ww
「>」>「>」
こう変換するAPIをさがしてるのだろう。


363:311
12/09/18 00:03:53.34
>>362
あ、エンコードされてしまったww


364:デフォルトの名無しさん
12/09/18 00:13:14.32
Html.fromHtml( getString(~))
これじゃだめなの?

365:デフォルトの名無しさん
12/09/18 00:59:40.09
自分だったら、明示的に保存するのはonBackPressedでやって、
それ以外はonSaveInstanceStateで一時的に退避してonCreateで復帰させるかな

onPauseやonStopで保存するってことはonResumeやonStartで
保存したデータ読み込むんだろうけど、ちょっと無駄が多い気がする

366:デフォルトの名無しさん
12/09/18 16:24:08.32
Androisは2枚のcanvasが乱ダムに表示されるのでclearがないと不便なんですが
どう構築すればいいんですか?canvasのレイヤを指定する方法が見つかりません

367:デフォルトの名無しさん
12/09/18 16:30:48.65
canvasとか使い捨てでいいじゃん

368:デフォルトの名無しさん
12/09/18 16:48:01.79
>>360-364

>>362さんのいうようにしたいんです。>>364で出来ますか?

20時くらいに家に帰るのでそれまで確認出来ません

369:デフォルトの名無しさん
12/09/18 17:09:07.19
じゃあ帰って確認しろ

370:351
12/09/18 19:42:02.29
>>352,355
WakeLockを使って思うような挙動になるのを確認しました。
ただバッテリーの消費が気になるので、AlarmManagerやServiceも試してみようと思います。
ありがとうございました。

371:デフォルトの名無しさん
12/09/18 23:30:56.62
外部jarをlibs配下にコピーしてAndroid Dependenciesにも表示されているのですが
そのjarがAPKに組み込まれず実行時にNoClassDefFoundErrorになってしまいます。
SDKのverは20.0.3です

どうすれば参照しているjarをAPKに組みこめるのでしょうか?

372:デフォルトの名無しさん
12/09/19 00:46:26.59
>>371
proguard有効にしてないよな?

373:デフォルトの名無しさん
12/09/19 01:52:22.39
ヒントが少なくて分からん。
android jar noclassdeffounderror
でググってみ。何パターンかの問題とその解決法が出てくるよ

374:371
12/09/19 02:51:07.40
eclipse4.2でビルドしています。
対象のプロジェクトから外部のjarファイルを参照しており
Eclipseから実行/デバッグした時にこのjarファイルがパッケージに含まれずに
エミュレータ上で対象アプリを起動したときにNoClassDefFoundErrorになります。
検索で見つかったことは一通り試しているのですがどうしてもパッケージに含まれないままです。

>>372
proguardは有効にしていないです

375:デフォルトの名無しさん
12/09/19 03:04:33.90
質問です。

RelativeLayoutが使えるバージョンとかって決まっているのでしょうか?
android1.6で使おうとすると、ソースが見つかりませんでした。のエラーが出ます。

ちなみに同じ事をLinearLayoutでやろうとするとうまくいきます。


376:311
12/09/19 04:26:46.67
>>374
eclipse終了させてターミナルから-cleanオプションつけて起動すると
うまくいくことがある。

eclipseのインストールフォルダで
./eclipse -clean

あとは、F5キーでプロジェクト更新したりとか
プロジェクトのクリーンを実行したりくらいかな


377:デフォルトの名無しさん
12/09/19 05:15:56.79
初歩的な質問で悪いんだが
画面下に
ボタンを横に4つ2行計8個
xml使わずに並べるにはどうしたらいい?

378:デフォルトの名無しさん
12/09/19 05:52:37.59
>>374
Java Build PathのOrder and Exportでチェック付いてる?

379:デフォルトの名無しさん
12/09/19 08:28:11.18
>>378
Android Dependenciesに含まれている場合はそれは不要のはず

どうしても解決しないならlibsに入れないで、ビルドパスに追加した後
>>378の設定やってもいけることはいける

380:デフォルトの名無しさん
12/09/19 08:43:17.36
>>377
xmlで組むのと同じことをJavaのコードでやればいい

381:デフォルトの名無しさん
12/09/19 08:58:37.29
>>377
普通にLineraLayoutをnew して Activity#setContentView に渡す
そのLLの中に好きなようにView階層を組んでいく

setLayoutParams でぐぐれば例はいくらでも出てくる

382:デフォルトの名無しさん
12/09/19 14:53:36.40
実機でも遅い気がするんですが仕様ですか?
でもグリグリ3D動かしてるゲームとありますよね?
Android-Javaでどうやってあそこまでできるんでしょうか?
教えてくだたい。

383:デフォルトの名無しさん
12/09/19 15:03:18.46
>>382
OpenGLES使ってる?Javaでも割と速度出るよ
それでも目標速度にならない場合はNDK一択。
凝った3Dで頑張ってるゲームはフルNDK開発と見て、まず間違いないんじゃないかしら

384:デフォルトの名無しさん
12/09/19 19:12:21.25
文字列の入力とリストからの選択が出来る custom preference ってどこかに落ちてませんかね?

385:デフォルトの名無しさん
12/09/20 00:20:15.41
 android初心者なので、もしかすると根本が分かってないかもしれませんが、よろしいでしょうか。

 今現在、クラスAで画面を作り、LinearLayoutにクラスBで作ったTextViewを貼り付けているのですが、
このTextView(クラスAのobj_tv1、またはobj_tv2)がタッチされた時、クラスA側でobj_tv1、または
obj_tv2がタッチされた事を察知させる方法は何かありますでしょうか。
 ちなみに、今は以下のような感じで作っています。(主要な部分を抜粋して記載しています)

public class クラスA extends Activity{
  private クラスB obj_tv1;
  private クラスB obj_tv2;
  private LinearLayout obj_LL;
  public void onCreate(Bundle savedInstanceState) {
    obj_tv = new クラスB(this);
    obj_LL = (LinearLayout)findViewById(R.id.xxxx);
    obj_LL.addView(obj_tv1);
    obj_LL.addView(obj_tv2);
  }
}

class クラスB extends TextView implements View.OnTouchListener{
  public boolean onTouch(View v,MotionEvent event){
    タッチした時の処理
  }
}

 質問の内容で不明な部分などありましたら、ご指摘頂けると幸いです。
 なにぶんandroidが初めてなもので、見当違いな事を言っているかもしれませんが、どうぞよろしく
お願い致します。

386:デフォルトの名無しさん
12/09/20 00:38:46.55
質問があります。
イヤホンジャックにイヤホンが刺さっているかどうかを判断したいのですが、なにか方法ありますか?
AudioTrackで再生するときにスピーカーだったら再生せずに、イヤホンのときだけ再生させたいです。


387:デフォルトの名無しさん
12/09/20 00:47:34.35
>>385
static経由で無理矢理呼べるけど、クラス分けずに素直に匿名のリスナ登録するのじゃだめなのかな

388:デフォルトの名無しさん
12/09/20 01:12:43.88
>>385
クラスBにコンストラクタを追加して引数でクラスAのインスタンスを受け取って
クラスBから好きな時点で好きなようにクラスAのメソッドを呼べばいい

389:デフォルトの名無しさん
12/09/20 01:18:24.88
コンストラクタって何ですか?

390:デフォルトの名無しさん
12/09/20 01:54:03.86
>>389
せめてぐぐってから質問しろ

391:385
12/09/20 02:41:13.90
>>387
 static経由というのは、クラスA、クラスBのどちらに変数(メソッド?)を作ったらいいのでしょうか。
 基本的な質問かもしれません、すみません。
 あと、クラスを分けずにとのアドバイスですが、クラスBのプログラムも長くなっているので今から
クラスAに移動すると、正直どこをどう修正すればいいかわからない状況なので、できれば現状のままで
追加できるコードを探したいのですが・・・

>>388
 クラスA側で以下のように書いて、

 Intent obj_intent = new Intent(クラスA.this, クラスB.class);
 obj_tv = new クラスB(this, obj_intent);

 クラスB側のコンストラクタで以下のように受け取ればいいのでしょうか。

 public クラスB(Context context, Intent lo_int)

 書いててみましたが、lo_int の使い方がよくわかりませんでした。
 「lo_int.メソッド名」という書き方ではないんですね、googleでインスタンスやオブジェクトの受け渡し
について検索すると画面遷移の話ばかり出ており、私がやってるのと違うので余計にわからなくなりました。
 申し訳ありませんが、コード例を挙げて頂ければ有り難いのですが・・・


 387様、388様、アドバイスありがとうございます。
 私の理解が足りないばかりに、再質問の形になりまして申し訳ありません。

392:385
12/09/20 02:49:25.14
 すみません、>>385の書き込みでクラスAで訂正がありました。

public class クラスA extends Activity{
  private クラスB obj_tv1;
  private クラスB obj_tv2;
  private LinearLayout obj_LL;
  public void onCreate(Bundle savedInstanceState) {
    obj_tv1 = new クラスB(this);         ←※訂正
    obj_tv2 = new クラスB(this);         ←※訂正
    obj_LL = (LinearLayout)findViewById(R.id.xxxx);
    obj_LL.addView(obj_tv1);
    obj_LL.addView(obj_tv2);
  }
}

 クラスBのオブジェクトを2つ定義しているのに作成が1つで、なおかつ「obj_tv」となっており、
1と2の番号をつけ忘れてました。
 そして>>391の書き込みでも388様への返事で同様に番号をつけ忘れてました。

 お詫びと訂正を致します、申し訳ありません。

393:デフォルトの名無しさん
12/09/20 02:51:17.39
インスタンスとインテントを混同してるとかwwwww

394:デフォルトの名無しさん
12/09/20 03:18:33.78
>>392
さすがになんか本買って仕切り直したほうがいいよ
Javaもよく分かってないのに、場当たりでググったりコピペしてたりすりゃそりゃ破綻するって。。

ここで全部説明貰おうとするより100倍早いかと



395:デフォルトの名無しさん
12/09/20 07:55:26.06
質問させてください(_ _)
ウィジェットを作っているのですが
メモリ不足とかタスクキラーとかのアプリで
システムがとまっちゃって変数とかも初期化されちゃうんで
保持しておきたい変数とかはSharedPrefarenceで保持しておくようにしたんですが
これで保持される人もいれば
保持されない人もいちゃうようなんです。
SharedPrefarenceにおいてもタスクキラーとか端末によっては消えちゃうもんなんでしょうか
ウィジェットのアプリで変数の中身とかを保持しておく良い方法はないでしょうか

396:デフォルトの名無しさん
12/09/20 08:02:18.62
すいません、Sharedpreferenceです

397:デフォルトの名無しさん
12/09/20 09:05:04.19
>>395
聞いたこと無いが・・・
どこかで上書きしてないか?

398:デフォルトの名無しさん
12/09/20 09:19:50.53
SharedPreferenceはファイルだから普通は残るよ

399:デフォルトの名無しさん
12/09/20 09:42:07.71
>>385
private クラスA _classA;
public クラスB(Context context, AttributeSet attrs) {
  _classA = (クラスA)context;
}

public boolean onTouchEvent(MotionEvent event) {
  _classA.touchClassB();
}

android初心者というよりJavaも初心者みたいだから、
まずはJavaを勉強するところから始めた方がいいよ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch