Androidプログラミング質問スレ Part25at TECH
Androidプログラミング質問スレ Part25 - 暇つぶし2ch382:デフォルトの名無しさん
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