Androidプログラミング質問スレ revision42
しろうとです。eclipse型viewで表示設定しただけのbuttunを、
型ActivtyでsetonclickLisnarを定義したいのですが、Activity側でどのようにbuttanを
呼び出せばよいですか?途方にくれております
4 :
デフォルトの名無しさん:2014/04/06(日) 02:02:46.76 ID:IY25m5PS
レイアウトのXMLでidを指定する
ActivityからはfindViewByIdで探す
教えて下さい。ボタン2つ作ってボタン1を押すとTextViewの右側に
"1"と書き込まれ、ボタン2を押すとTextViewの左側"2"と書き込まれるように
するにはどうすればよいですか?
setgravityじゃ無理みたいなのですが、なにかいい方法ありますかね
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = inflater.inflate(R.layout.activity_main, null);
LinearLayout ll = (LinearLayout) itemView;
TextView bt = new TextView(this);
bt.setText("Cancel");
LinearLayout.LayoutParams params =
new LinearLayout.LayoutParams(200, 400);
bt.setLayoutParams(params);
ll.addView(bt);
}
xmlレイアウト対しコードによりビューの追加がしたいのに出来ない
LinearLayout ll = new LinearLayout(this);
とすると正常に追加されるのに何故?
新しくviewを作っちゃってるからじゃないのかな
9 :
デフォルトの名無しさん:2014/04/06(日) 10:02:22.81 ID:99HyRwmG BE:152968921-2BP(1000)
setContentView(int)
って中でインフレーとしてくれるんじゃないか
>>4 >>5 教わった方法を今ためしましたが、型viewで表示設定しただけのbuttun@と
ActivityからfindViewByIdでさがしたbuttunAと2つのbuttunが出てしまいます・・
@のcanvas.drawBitmap(sButton, 10, 130, null);をActivity側でsetonclickLisnarを定義したいです
>@のcanvas.drawBitmap(sButton, 10, 130, null);をActivity側でsetonclickLisnarを定義したいです
それは
buttonじゃ
無い
あ、buttonじゃなかったですね、、どうやったらbutton作れるか調べます。。
なんでこんな日本語が不自由なんだ?
初心者はまずxmlでレイアウト作りなよ
左右同時に表示したいとかじゃなければsetGravityで行けると思うけど
それでならないんだったらTextViewの幅がWrapContentになってるとかじゃ
>>16 幅はWCでもMPでもダメでした
ラインのトークの様なレイアウトにしたいのですがうまくいきませぬ。
TextViewを2つに分けようと思ったけど、スクロールがズレるからそれ以外
の方法で何かあれば、教えて下さいな。
LINEのトーク画面で右や左に寄せて表示されてるのは
文字じゃなくてTextViewを含むViewだよね?
画面見てみたけど
レイアウト自体が別っぽいね
gravity と layout_gravity を混同しているとか
設定している相手が間違えているとか
色々理由がありそうなんだけど
うまく動かないソースがないと誰も正確なことはわからないと思うんだ
これで出来ると思った、でもこうなってしまう
という最小限のソースを貼って欲しい
何度も言われているがAndroidプログラミングは初心者向けではない。
他の言語で何でも作れる人、仕事でプログラマーな人でも
特殊なレイアウト指定方法に慣れるのに1ヶ月くらいかかるんだからネ!
焦らずじっくり時間をかけてやりたまえ
>>21 > 特殊なレイアウト指定方法
まあ tk のpackerにくらべたら100倍マシなんですけどねw
型viewで@GAME_START AGAME_PLAY BGAME_OVERの3つの画面で構成されてるコードで
@ABどれかの場面だけでbuttonを出したいのです。
さきほど2で質問した方法やいろいろなやりかたを試したのですが、ずっとbuttonが
出っ放しになったり起動エ
ラーになったりします。
型viewの一部
public final static int GAME_START = 0;
public final static int GAME_PLAY = 1;
public final static int GAME_OVER = 2;
private int gameState;
public void startScene(Canvas canvas) {
public void overScene(Canvas canvas) {です
いまかんがえてる一番よさそうなやt¥りかたは
型Activityでbutton表示を行い→★型View1のGamestartとかの状態を獲得して
→if(GAMESTART == 起動中)でbutton表示。にしたいですが
★Gamestartとかの現在の状態をインポートゲットする方法がわかりません。
まずは落ち着いてゆっくり深呼吸しろ
ただの荒らしだろ
相手するなよ
ちょっと上で話題に上がっております
特殊なレイアウト指定方法の質問です。
FrameLayoutを用いて下記イラストのような
配置を実現したいのですが、スマートな方法が思いつきません。
ttp://www.dotup.org/uploda/www.dotup.org4979789.png FrameLayout、RelativeLayoutまでは配置できていますが、
一番前面のLayout上の View4 の配置に手こずっています。
●自分の考え
(1) 一番前面のLayoutもRelativeLayoutにし、View1と同じ内容のViewを配置する。
(2) そのViewの中身は透明のものとする。
(3) そのViewの下に、View2+View3のheightを持つViewを View4 として作成する。
ここで、 View2+View3 の高さ指定は、Javaのコードにて行う。
●悩んでいる点
View1, 2, 3のheightをdp指定できればView4の配置位置もdpで指定すれば
良いのですが、wrap_contentで指定したいので、dp指定はできません。
うまい方法などありますでしょうか。
よろしくお願いします。
29 :
28:2014/04/06(日) 16:58:21.23 ID:hkj+1UHa
誤解を生む書き方でしたので訂正しますと、
(2)の 「そのViewの中身は透明のものとする」
というのは、View1は(今作っているものでは)TextViewですので、
Text Colorを透明色にする、という事です。
よろしくお願いします。
一番前面のlayout(何に使うの?)とView4を
その下のRelativeLayout配下にしてしまえば解決するのでは
31 :
28:2014/04/06(日) 17:09:31.02 ID:hkj+1UHa
>>30 レスありがとうございます。View2とView3の前面に、
alpha = (int) 0x30 くらいの半透明のスクリーンを
被せたいと考えています。
View2とView3はSDK標準UIのレイアウト要素(Buttonなど)を
配置しているので、View2やView3自体の色を変更する事は
避けたです。
作り方が分からないUIがあるんだけどfacebookにある
上スクロールすると一緒にスクロールして消えて
下スクロールするとニョキッと出て来るヘッダってどうやって作るの?
たぶん今はこうなっているんだろう
<frame>
<relative>
<view1/>
<view2/>
<view3/>
</relative>
<layout?>
<view4/>
</layout?>
</frame>
こうすればRelativeLayoutの指定で
View2とView3の上下も使えるんじゃない?
<frame>
<relative>
<view1/>
<view2/>
<view3/>
<layout?>
<view4/>
</layout?>
</relative>
</frame>
これだけ見ると一番下のFrameLayoutすらいらない気がする
>>21 いや、別に、HTMLを生でコーディングできる俺からしたら、
XMLによるレイアウトなんて0秒というかマイナス時間の世界だったぞ。
35 :
28:2014/04/06(日) 17:42:10.47 ID:hkj+1UHa
>>33 2度もお手を煩わせてしまい申し訳ありません。
やっと理解できました。
FrameLayoutを使わなくても
RelativeLayout内での指定で
重ねることが出来るのですね。
ありがとうございました。
>>35 通じたようでよかったです
しかしちょっと間違えていたので修正
<relative>
<view1/>
<view2/>
<view3/>
<layout?/>
<view4/>
</relative>
こうでした
View4をlayoutの中に入れたらアカン
座標点計算とかで、AndroidSDKのライブラリで使えそうなのってありますか。
Unityを使えって話なんですけど、いかせん個人向きではないので・・・
Activityの背景を透過する方法として
テーマをTheme.Translucentにするというのがありますが、
レイアウトの一部の矩形領域だけを
背景透過させるにはどうすれば宜しいでしょうか?
テーマ自体はHolo.Lightを使いたく、その一部分だけを透過させたいと思っています。
Holo.Lightを継承して背景は透明なテーマ作っちゃダメなの?
40 :
38:2014/04/06(日) 23:03:04.00 ID:t6ijUr/n
>>39 なるほど、ありがとうございます。
今やってみたのですが、背景の透過ってどう指定すれば良いのでしょうか?
<style name="MyTheme" parent="android:Theme.Holo.Light">
<item name="android:background">#00000000</item>
</style>
とやってみましたが、背景は白色でした。
41 :
38:2014/04/06(日) 23:12:05.01 ID:t6ijUr/n
自作アプリに関わらず、EditTextに文字が入力できなくなる現象がまれに出るのですが、
原因などご存じの方いらっしゃいますでしょうか?
もしくはこの件について議論されてるブログとか掲示板とか知りませんか?
ググると「ListViewにEditTextを置くと〜」などが引っかかりますが、AlertDialogにEditTextを配置しただけの物で、普段は問題なく入力できるのですが、まれに入力できなくなる事があります。
現象としては
・アプリ更新やIME変更はしていない
・IMEは表示される
・IMEのキーボードをタップしてもEditTextは無反応
・該当Activityを完全に終了(BACKキーでの終了ではなく、タスクキル系から終了)させてから再度試行すると、問題なく入力できる
宜しくお願いいたします。
初心者なのですが複数の項目からいくつかを選択して画面を遷移したいです
リストビュー以外にも方法はありますでしょうか?
出来ればスピナーを使いたいのですがスピナーを表示させることまでは出来るのですが、画面遷移できません
よろしくお願いします
つintent
>>34 お前はナー
HTMLデザイナーよりの人にはやりやすいかもしれないが
今までのプログラミングの中では珍しい部類のデザイン方法なのさ
>>45 そうか?
PerlだとかでCGIでHTMLレンダリングってのは、Webデザイナー系というよりはWebエンジニア系だと思うけど。
あーもーわかった。わかった。
俺がケツ出せばいいんだろ?なっ?
ほら。
前スレで出てた10日で覚えるシリーズの本、俺も買ってたけど半分読んで使うのやめた
説明不足なのに理解させないまま先に進ませる構成だし
9割方出来てるサンプルプロジェクト読み込ませて
残りのコードをちょこっと書いてはい出来ましたと言われてもね…
やっぱ作りたいもの作りながら足りない知識は適宜補って
開発進めるのが上達への近道だと思う
教本読んで別に興味もないアプリ作っても楽しくないもん
パスドラみたいなゲーム作りたいんやけど、Unity使わなくてもできるもんけ?
>>46 タグ打ちが同じだけでCGIのHTMLレンダリングと明らかに全然違うだろうよw
LinerやFrameレイアウトみたいなものないべさw
>>49 通常のオフラインゲームプログラミング技術に加え
サーバーサイドプログラミングとデータベース連携技術が扱えるプログラマーじゃないと作る事は不可能
Unityとかゲームライブラリーでどうこうのレベルじゃない
そのツッコミの意味のほうが俺にはわからん
>>42 自作アプリに関わらずってことだから、その端末の問題なんじゃないの?
自分で作るときは、適当なタイミングでrequestFocusとかしたらどうかな。
ペイント系のツールによくある
「スポイト(あるピクセルの色情報を取得)」機能って
Androidで実装できますでしょうか?
取得対象は、
BitmapクラスやImageクラスの画像データではなく、
自前Activityに表示されている内容です。
イメージデータが相手なら出来そうな情報を
いくつか見つけましたが、Activityで表示されている中の
とあるピクセルのaRGBを取得したいと考えています。
方法がございましたら、お教えいただきたくお願いします。
55 :
54:2014/04/08(火) 17:09:09.69 ID:uFG97Cl0
ViewをBitmapで取得することができる事が分かりました。
お騒がせいたしました。
56 :
デフォルトの名無しさん:2014/04/08(火) 19:46:36.53 ID:31LtUjZP
フラグメントを使う場合、レイアウトはXMLで書かないといかんの?
全部jJavaコードで動的に書く方法無い?
onCreateViewでViewかえせりゃ何でも
onCreateViewで、どうすればいいの?
どこかにサンプルありませんか?
>>58 フラグメント使わない場合はどうやってたんだ?
>>59 フラグメントを使わない場合は、普通に
LinearLayout lay = new LinearLayout( this );
setContentView( lay );
とかやって、ボタンや画像やテキスト並べてましたが、
フラグメントを使う場合は、動的にウィジェットを配置するにはどうしたらいいのでしょう?
レイアウトをXMLで書かないのはなぜなの?
どうしても動的に書く必要があれば別だけど。
>>61 それは、Javaから動的に配置する方法は無いという意味でしょうか?
「どうしても動的に書く必要」があるかないかと言えば、
将来的にありうる可能性はあるわけですから、勉強しておくのは必要ですよね。
初心者ですが質問させて下さい
eclipseのHelloWorldのコードについてですが、
そこに書かれている「android.suport.v7.app.ActionBarActivity」や「android.os.Bundle」や「R.id.container」ってクラス名ですよね?
クラス名がそのクラスの在り処を示しているのは分かるんですがこれらのクラスがどこにあるのか見つけることができません
どこにあるんでしょうか?
>>64 方法を紹介してるサイトありますでしょうか?
さんざんググってるのですが見つかりません。
>>60 Activityはそれと同じようにした後、
以下のような感じでフラグメントを配置する
getFragmentManager().beginTransaction().add(new XXXFragment(), "XXX").commit();
XXXFragment#onCreateView()側で、
レイアウト作って FrameLayout layout = new FrameLayout(getActivity())
そのlayoutにいろいろ配置してreturn layoutする
>>63 ActionBarActivity.javaやBundle.javaはAndroidSDKをインストールした先
Rはプロジェクト内のgenフォルダの先
>>66 ありがとうございます。で、やってみたんですが、add のところでエラーが出るのですが、どうしればいいでしょうか?
「型 FragmentTransaction のメソッド add(Fragment,String)は引数(MainActivity.hoge_Fragment,String)に適用できません」
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout lay = new LinearLayout( this );
lay.setOrientation( LinearLayout.VERTICAL );
setContentView( lay );
if (savedInstanceState == null) {
getFragmentManager().beginTransaction().add(new hoge_Fragment(),"hoge").commit();}}
public static class hoge_Fragment extends Fragment {
public hoge_Fragment() {}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
FrameLayout layout = new FrameLayout(getActivity());return layout;}}
その辺ってFragment使う場合の基礎中の基礎だから
ググっても見つからんとかありえないんだけど
>>69 なんでhoge_Fragmentがpublic static classなんだよ
innerclassはダメって英語サイトに書いてないっすか
原因?そんなものは決まっている
自分で調べないで理解せずコピペしかしてないからでしょうに
あっ、無名classがダメでした。。
Fragment関連のimportにコンパチと通常の混じってないか?
>>72 eclipseのコードってなんだ?コードを書くのはおまえだろ
こうやって取りあえず動く、レベルのアプリが作られていくんだな・・・
業務でやってるんじゃないことを祈る
でも最初はみんなコピペだろ
全部リファレンス読んでから暗記して書いてるわけ?
業務もとりあえず動くレベルのところがほとんどだと思うが
むしろ重要なのはサーバーサイドだな
>>79 暗記する必要ないよ
コピペするのは構わないけど、
エラーが出ればリファレンス読んで自分で解決できなきゃダメだ
>>79 確かにソース自体はコピペだが
そのコード1行1行が何を表してるのかとか、パラメータの意味とか全部ちゃんと調べるぞ普通?
1行たりとも謎のままの状態で動かしたりはせん
リリースなんてもってのほかだ
>>72のコピペで動かないと悩んでたわけですが、
書き方を変えたら、動きました。
//addで、エラーになる
Fragment newFragment = new DebugExampleTwoFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(CONTENT_VIEW_ID, newFragment).commit();
//----------------------------------------------------------------
//エラーにならない
getSupportFragmentManager().beginTransaction().add(CONTENT_VIEW_ID, new DebugExampleTwoFragment()).commit();
importの関係なんですか?
>>76よくわかりません。
getFragmentManager()はandroid.app.Activityのメソッド
getSupportFragmentManager()はandroid.support.v7.app.ActionBarActivityのメソッド
自分のActivityがどっちをextendsしてるかによってどっちを使うか変わる
サポートする端末によってどっちを使うかを決めなきゃいけないんだが
コピペちゃんは運任せなんだな
>>80,81
最終的にはそうなるべきだけど、本当の初心者に最初からコードの1行1行の意味求めるなよ。
>>84 コピペしたコードのエラーを解決を初心者に求めるべきじゃないとかビックリだわ
それこそ初心者が勉強していくべきとこだろ
コピペしたコードがそのまま動いてそれでよしとかプログラミングの勉強でもなんでもないわ
>>83 すいません、どっちかを使うと、サポートする端末がかわるのですか?
そのへん詳しくお願いします。
>>86 お 前 マ ジ で ち ょ っ と は 自 分 で 調 べ ろ や
>>87 まあ、まあ。
APIレベル11より、前か後の端末か、という話しでしょうか?
>>88 怒 鳴 ら れ て る 本 人 が ま ぁ ま ぁ と か 言 う な
まあまあじゃねーよ、お前が言う言葉じゃないよ
調べられない人間で基本も理解できてないやつにFragmentははやいだろ
素直にActivityとXMLで作り方しっかり勉強しろ
>>85 なんで話が1行1行コードの「すべて」に飛躍するんだよ。
例えば、画像を読み込むコードの勉強をするとしてコピペして、それに画像を受け取るインテントの部分が
含まれてたらインテントの部分は最初はおまじないでもいいだろが。
別に勉強したい時にインテントの勉強したって。
>>86 >>83はちょっと正確でなかったし今回は特別に教えてやる
APIレベル4以上をサポートなら android.support.v4.app.FragmentActivity をextendsして getSupportFragmentManager()
APIレベル7以上をサポートなら android.support.v7.app.ActionBarActivity をextendsして getSupportFragmentManager()
APIレベル11以上をサポートなら android.app.Activity をextendsして getFragmentManager()
フラグメントは上級者向けなんですか?
最近のeclipseで雛形をつくると、自動的にフラグメントになってるので、
覚えないとなんとも。
>>91 それは学習の順序が悪いだろ
画像イジる前にインテントの授受だけを先に学習したほうが
って喩え話にマジレスしてもしょうがねぇわな
>>93 お 前 は も う 黙 っ て ろ よ
>>91 しかしそのインテントのコードが自分の環境で動かなければ、画像を読み込むコードを動かすこともできないわけだ
新しいことを勉強するたびになんらかのトラブルは起こるわけで、それを自分で解決する能力を習得できてるかどうかが
効率よく勉強を進めていくために必要だということだよ
些細なAPIに対する理解を習得するより、その自分で解決する能力を養うことこそ重要だってことだ
>>93 基本をちゃんと理解してる人向け
Fragment使うなら後方互換も考えなきゃならなくなるし
インポートも理解できてないなら余計理解できなくなるだけだ
今でもActivityとXMLで普通に作れるからそっちからいっとけ
あとレイアウトをコードから組むのはXMLでやるより難易度高いから素直にXMLでやりな
ええ?
XML難しいっしょ。
プログラムでレイアウト組んだほうが楽だよね?
>>97 > プログラムでレイアウト組んだほうが楽だよね?
それでこんだけスレで質問しまくってりゃ世話ねぇな
絶対にXMLのほうが楽、ちょっとは他人の意見を素直に聞けよ
>>97 Fragmentに手間取っている程度の実力なんだから素直にアドバイスに従えば?
XMLで実装できてないのに、コードで実装
>>92さんありがとう!
いっぱい謎が解けました。
免許取らずにいきなり公道走って事故ってるようなものだな
プログラムも段階積んで徐々にステップアップしていくほうがいいぞ
最近G様がFragmentを使えってんだからしょうがないんじゃないの
暴君G様はActivityを廃棄したいのかな
廃棄するもなにもFragmentはActivityに配置するものなんですが
Fragmentの便利なところって、具体的になんなの?
2画面有る場合、今まではクラスわけしたActivityクラスjavaファイルを2つ作らないといけなかったけど、
Fragmentにすればひとつで済むって感じ?
Fragment毎にファイルわけろよ
便利なのは複数のFragmentを1画面にまとめて表示できたり、
別々の画面に表示できたりするとこだろ
どっちの表示方式にするかをFragment側では意識しなくていい
>>105 ライフサイクルをActivityから切り離せる
画面回転でActivityがonDestroy/onCreateされるときでも、
FragmentはonDestroy/onCreateしないようにできるな
フラグメントがgetArgumentsするタイミングはいつがいいのかな?googleのサンプルではonStartでしてるけど、画面回転時はonCreateでBundleを取得できるから二重になっちゃうんだよね。。
やっぱonCreateでgetArgumentsするのがいいと思うんだけど、
誰かアドバイスください!
>>110 スレチや。
OpenCVスレにでも行け
>>111 onCreateでやればいいんじゃないの?
getArgumentsで得られるBundleの情報を、
onCreateの引数のBundleの情報で上書きするような感じとかで
bitmapでupするようなのがプログラム組む時代か。
生まれたときからブロードバンドな世代だとこうなるのかな。
ありのままに話すぜ"その画像はjpeg"何を言っているのか(ry
>>115 実体がどうだろうが.bmpって書いてある
>>112 輪郭抽出をベースにして試行錯誤すれば要件を満たしそうです。助言感謝
>>113 そうですよね、googleのサンプル(FragmentBasics)ではonStartでやってるのでなんか理由あるんかなと思ったけど、getArguments自体はonCreateで問題ないっすよね。
付箋メモみたいな、画面に小さいメモが浮いてるようなのは、
フラグメントで表示してるの?
小さく画面を表示させるには、どうしたらいいの?
>>119 方法はいくらでもある。
具体的にどんなのを作りたいのかが
決まってから、それをどう実現できるかを
考えたら良いのでは無かろうか。
まず、小さいウィンドウのアクティビティを作る方法がわからないのですが、
どんな手法がありますか?
>>122 透過activityでタイトルバーをなしにして、
カスタムviewでタイトルとか枠を自作する。
>>123 たとえば、WindowManagerで透過指定しただけだと、下側にあるアプリを操作できないですよね?
何か設定とかありますか?
Activityで受けたイベントや座標を下側のアプリの投げればいい
下側のアプリが、自分のアプリじゃない場合は、どう通知させるの?
透明なActivityじゃなくて、WindowManagerにView突っ込む方法でいける
AdMobの登録が出来ない
お申し込み画面でアカウントを選択した後、情報登録の完了という所で情報を入力後続行ボタンを押すと横でクルクルアイコンが出てきてそこから進まない。
何故?
>>128 ブラウザ変えてみ
chromeで駄目ならわからん
>>219 ブラウザ変えたりiPhoneからやってみたりしたけどだめだった。
過去にBAN食らったりしてないか?
>>131 BANされるような事した覚え無いし、BANだったら何か別に出てくると思うんだよなー。
そんな気配はなくて、ずっと処理中のアイコンがクルクル回ってるだけ。
>>133 純粋にxml側にそのIDが存在しないんだろう。
所得じゃダメだよね
137 :
122:2014/04/10(木) 23:00:26.53 ID:98hcauBh
>>127 一応、WindowManagerで、width,heightに小さいサイズを指定して、
小さいウィンドウを出すことはできましたが、
やはり、後ろ側のアプリを触っても反応しません。
マニフェストのパーミッションにSYSTEM_ALERT_WINDOWを指定して、
FLAG_WATCH_OUTSIDE_TOUCHを指定しましたが、だめでした。
他に設定方法がありますでしょうか?
138 :
デフォルトの名無しさん:2014/04/10(木) 23:24:52.93 ID:kEnXqDrZ
質問です。
オフラインWEBアプリでバーコードスキャンを絡めたシステムを考えています。
ZXingのQRコードスキャナーを使って、
<a href='zxing://scan/?ret=(戻り先URL)'>
な感じでブラウザからQRコードスキャナーを呼び出せば、読み取り結果を含めてブラウザに戻ってきてくれるんですが、戻り先URLが
192.168.0.1/hoge.php?code=(可変なバーコードの内容)
のようになって、オフラインWEBアプリなので404になってしまいます。
なんとかうまいやり方はないでしょうか。
(参考)
github.com/zxing/zxing/wiki/Scanning-From-Web-Pages
うまいやりかたってどうしたいわけ?
バーコードの読み取り結果をjavascriptでブラウザのlocalStorageに書き込みたいです
AdMobに登録できないとか
Webアプリとか
ここはAndroidプログラミングスレなんですけどね。
ZXingの呼び出し方を工夫したら解決したりしませんかねえ...
作者に頼むか自分でスキャナアプリ作るかだな
禿げてるんやけど、育毛する方法って何があるけ。
145 :
デフォルトの名無しさん:2014/04/11(金) 00:31:43.89 ID:821/Yti5
RelativeLayoutで
Aの下にB
Bの下にC
という置き方をしていて、全部 android:height = "wrap_content" にしている。
Aは TextView
Bは SeekBar
Cは LinearLayout
ここで、xmlのタグ編集で
SeekBar を com.example.MyRelativeLayout に変更すると
android:height = "wrap_content" であるにも関わらず、
実機で実行した場合には
Bが画面下いっぱいにまで広がって表示される。
(なお、デザイナー画面上だとちゃんと wrap_content の高さで表示されている)
MyRelativeLayout は独自クラスで、
その中で指定している xml の中身も android:height = "wrap_content"
で、どこにも match_parent は設定していない。
つーかデザイナー画面上だとちゃんと表示されているから
SDKのバグなのかね?
>>135 ありがとうございました
解決しました
xmlの方ではtxtでなくtextでidつけてたようです…
トリプルタップに反応するアプリを作りたいのですが、
標準ではトリプルタップ時のコールバックみたいなAPIはないですよね?
もしかしてonTouchEvent()でACTION_DOWN毎に時間間隔や座標間隔を
チェックする、みたいなことをする必要があるでしょうか?
カメラで四枚写真を撮影して、それぞれの写真を5秒間一枚ずつ表示する動画を出力するアプリを作ろうとしています
カメラでBitmapデータやCamera.PreviewCallbackのonPreviewFrameで出るYUVデータで画像は獲得できるのですが、
そこからその静止画のデータを動画に変換する方法が分かりません
何か参考になるサイトやヒントがあれば教えていただきたいです
android 静止画 動画 変換 これでぐぐる
余計なお世話かも知れないが4枚を5秒毎に切り替えるだけならわざわざ動画にする必要なくね?
そのアプリでスライドショーさせるとか4枚をまとめて1枚の画像にするとかじゃダメなの?
LinearLayoutをextendsしたカスタムクラスを作っています。
読み込むxml内にはSeekBar1とTextView1を置いていて、
SeekBar1のprogressが変更されたらTextView1に
progressの値を表示するようにリスナ登録しています。
このカスタムクラスをCustomSeekBarとします。
ここから質問なのでのですが、
このCustomSeekBarをMainActivity(のactivity_main.xml)に置いている時、
CustomSeekBar内のSeekBar1のprogressが変化したら
TextView1の表示変更だけではなく、
activity_main.xmlに置いている別の要素
(たとえばImageView1のheight)を変更したい
場合には、どのように記述すれば良いのでしょうか?
カスタムクラスにせずにactivity_mainにSeekBarを置けば
話は早いのですが、このカスタムクラスは複数個所で
使いたいので、この形で実現したいです。
よろしくお願いします。
eclipseを使って画像を表示させることはなんとかできるようになったのですが
ボタンを設置してそのボタンを押すと次の画像へ飛ぶ、というようなことをしたいのですがどこか初心者でもわかるようなサイトはありますか?
ボタン1,2,3
↓1,2,3のどれかを押す
それに対応した次の画像(戻るボタンなどを設置したい)
応用して簡単な迷路ゲームのようなものを自作してみたいのですが上記のボタン
コードがあればそれを改変して現在の画像表示アプリに組み込みたいです
ゲーム作成本も無しでやってるのかな
>>156 CustomSeekBarにリスナプロパティを新設して公開して、SeekBarのリスナを処理する部分でそれを呼べばいいんじゃないの
161 :
156:2014/04/11(金) 14:30:48.25 ID:efcYigfa
>>160 いただいたキーワードで調べて頑張ってみます。
ありがとうございます。
>>159 ありがとうございます、まだなにが分からないのか分からないような状態なのでまたこのスレにお世話になることがあると思いますがよろしくお願いします
>>163 お前それだけの量の質問をここで全部答えたらスレ1つ潰れてしまうわw
それはそうと
割り勘単位設定:\100
一人あたり:\300
幹事さん役得:\300
としてはどうかね?
10日の〜しか置いてないとかどこの秘境の本屋だよ
そんなとこに近くにジュンク堂なんてねえと思うぞ
推薦図書スレ行って評判きいてネットで買えよ
>>167 検索しようにもどう検索すればいいのかわからないので型名だけ教えて頂ければ嬉しいのですが不可能でしょうか?
プロの力が〜と炎の〜が評価高かったかと思う
初心者にも程遠いような人は
Yahoo知恵遅れとか教えてgooに行ってろよと思ってしまう。
あっちは教えたくてうずうずしてる烏合の衆だから
皆優しく教えてくれるだろうに。
なぜわざわざ2chを選ぶのか。
>>163 ド素人の俺が答えてやろう
・Typeface
・Window.FEATURE_NO_TITLE
・わからん
・ImageView
・ImageButton
俺みたいに10冊以上買えば当たりの本が見つかるよ
食あたり
>>163 ・Typeface
・NoTitleBarとかNoActionBarが付いているThemeに変更
・初心者はLinearLayout使っとけ
・ImageView
・ImageViewにClickListener登録。
例えば1つ目の「フォントの変更」は
どうやって調べたら良いのか教えてあげる。
「android フォント変更」 でググる。
だとNG。
ユーザーがどうやって端末のフォントを変更するか
の情報ばかり出てくる。
ベターな検索方法は、検索ワードに「開発」も付け加える。
「android フォント変更 開発」でググると、
最初に次のブログが見つかる。
ttp://blog.livedoor.jp/yakazoo/archives/27899891.html で、この内容を信じ込むのはまだ早くて、
本当にこの情報は正しいのか?を更に自分で調べる。
普通にテキストビューの値をキャストしてintで取得して割り勘計算
計算結果を格納した変数を.tostringで今度は
文字列にしてテキストビューに代入すればいいんじゃない?
>>172 伝わらなかったのなら多分自分の認識が間違ってるんだと思います…
すみません
>>175 ありがとうございます
参考書はJavaの参考書を買ったのですがそれでは.javaの方しかできなかったもので…
アプリ開発の参考書を今度他の書店で探してみようと思います
>>177 ありがとうございます
まさに仰る通りの方法で検索していました
検索の仕方を教えて頂いてとても助かります
3つ目の質問ですがテーブルというより文字の枠型?というのでしょうか、レイアウトの画像にあるように文字を囲う様な枠型を作成したいという意味です
テーブルという意味を間違って認識してたみたいです
すみません
高柳ここやでー!
>>181 TextView とか LinearLayout とかは
1つひとつに background プロパティを設定できる。
例えばTextViewのbackgroudプロパティに #FF0000 と
入力すると、背景が赤色になる。
background プロパティに設定できるのは
色だけではなく drawable 内のリソースも。
好きな画像を背景にしたい、とか
グラデーションを背景にしたい、などは drawable
関連で調べて作ってみて。
特価民はお断りやで
Androidはいくら勉強してもマスターした気になれない。ちょっとしたことをするつもりでも意外に手間がかかったり。プログラミング好きじゃないと苦痛の連続かも。
しかも、誰もちゃんとおしえてくれないしね。
正直、Googleの公式リファレンスが一番わかりやすいからそれ見ろ
わからないなら諦めろ
>>188 こういうこと書く人って
なぜ貴重な時間を使って
わざわざこのスレに書き込みに来てるんだろ。
>>189 優しいから教えに来てやったんだろ^^;
グーグルプレイの無料ゲーム作ったんだけどすでにダウンロード1000件以上のアプリばっかりで一覧に載りそうな気が全然しないまま一ヶ月経ちそうなんだけど、みんなどうやってダウンロード数増やしてるの?
>>190 やさしいね。
定期的に教えに来てくれないといけないだろうから、大変だね。
>>191 VIPに、「俺のアプリ誰もダウンロードしなすぎワロタ」ってスレをたてる
ツール系とゲーム系どっちがDAUいいかな?
SearchViewがActionbarにはいってるせいで、
長押ししてもActionModeにならず、選択やコピーが出来ないんですが、対策ありますか?
>>197 SearchView入れたも普通にCABと共存できるよ
MULTIPLEじゃないほう使ってるならstartしてないとか
訂正
MULTIPLE_MODALじゃないやり方を使ってるなら
>>199 できるんですか!?
startってなにをスタートするのでしょう?
startActionMode
EditTextにフォーカスが当たるとソフトキーが立ち上がりますが、
このソフトキーを自作したいのですがどうすればいいでしょうか?
今作っているアプリのキー入力をテンキーのみにしたいのです
>>203 「 android ime 開発 」ででもググれや
ソフトキーを自作するより入力を数字のみに制限する方が簡単だと思うが
端末に新しいIMEをインストールさせるというよりも、
現在のソフトキーをオーバーラップするみたいなイメージなんですけどね〜
入力を"number"にしても端末やIMEによってはテンキーが表示されないですし、
入力値が実数なので"tel"にすると小数点がないです...
>>207 じゃ、好きなだけボタン置いた専用ダイアログでも作っとけよ
レイアウトに適当にボタンをおいて
下からだせばいいじゃん
ユーザーもアホじゃないから数字入力だとわかれば切り替えるでしょ
小数はnumberDecimalで制限できる
16進数値入力に制限したいっす
>>202 やはり駄目でした
CABがでると、Actionbarが隠れてしまうので、諦めます
よくわからないけどもしかしてSearchViewに入力した文字をコピーしたいのか
>>203 自分の感想だが、
自前のキーパッドを表示しているアプリは全て使いにくい
本当にどうしても自前のキーパッドを作りたければ,ActivityにKeyboardViewをつけちゃえば
いいんでないかい
でも慣れたIMEのほうがいいと思うけどなあ
分かりやすさのためこの機能で質問しますが、今、タップされるとToastを表示するカスタムButtonを定義しました。
このカスタムボタンをextendsして、カスタムボタン1とカスタムボタン2を作ろうとしています。
ボタン1をタップすると、R.string.b1の内容をToastで表示し、
ボタン2をタップすると、R.string.b2の内容をToastで表示、としたいです。
つまり、カスタムボタン内で扱うリソースのみ変更したい、ということです。
こういう事がしたい場合、親クラスやそれを継承したクラス達には、どのように記述したら良いのでしょうか?よろしくお願いします。
1月32日のようなおかしい日付を正しい表示にするにはどうすればよいのでしょうか
端末の向きを変えてもonConfigurationChangedが呼ばれなくなりました・・・
4.2.2(SH-06E)OK
4.4.2(NEXUS7 2013) NG
Manifestの android:configChanges は screenSize|orientation になっています。
ググってlayoutDirectionも入れろってのを見かけたのですが、それでもNGでした。
どなたか解決策をご存じないでしょうか?
と思ったら端末再起動したら直りました。
なんという・・・
フラグメントは使うな。
これ鉄則。
汎用性の低いものしかできない。
Fragmentの使い方を知らない方はみなさんそういわれます
Fragmentの便利なところって、具体的になんなの?
デジャヴ
でかいマップをフリックでぐりぐり移動、
ピンチで拡大縮小みたいな表示をやる場合の常套手段ってどんなんがありますかね?
とりあえずSurfaceViewを使って試したのが
移動がある度に表示されている全領域を再描画
→処理が追いつかない
画面よりちょっと広いBitmapに描画しておいてこれをずらしながら転送
範囲を超えてずらすときに別のBitmapへずらして転送、隙間を再描画、これを転送
→範囲を超えるときの処理が重くて引っかかる
>>224 fragmentでできることは、Activityで全てできる。
逆に、Activityにできて、Fragmentにできないものはある。
Fragmentのメリットってマジで気休めメモリ使用量が少ないだけだからな。
そりゃ既存のActivity+v4ライブラリで実現できる程度の物ですおし
ただPreferenceFragmentはv4にないんだよな
2.3を完全に切るまでクラスを分岐させて使うしかないけど
他にいい方法ある?
もう2.3は切り捨てていんじゃない?
俺のアプリ利用者はいまだに2.3.3 - 2.3.7が一番多い
IS01やLifeTouch NOTEも想定して作ってます
>>212 ActionModeにならないって話なのにActionModeはできたけどActionBarが隠れるからダメって話変わってね?
そもそもActionModeはActionb\Barを一時的に置き換える機能なのに
まぁいいけど・・・
>>235 「可能ですか?」という質問者に対して「可能」と答えるのならまだしも
ちゃんとした訊き方をしている質問者に対して「可能」とだけ回答している
人がちょっと上に居るみたいなんだけど、一体どういう性格の持ち主なんだろうね。
君はどう思う?
3行にしろボケ。
>>236 よう馬糞脳。まさにクソだな。
俺が可能と言ってやったのは「やり方があるから自分でもっと調べてみろ」というヒントだ。
可能か不可能かを教えてやる事は大事だ。
不可能なら調べると骨折り損だからな。
無回答のまま沈むよりよっぽど有意義だろう?
だからダメなんだよ馬糞脳が
ちなみに
「NG登録」とわざわざ告知するのはネットでは「私は幼いガキです宣言」だぜ
ジェントルは無言でサクッと実行する
覚えときな馬糞脳
新着1
と表示されたのにレスは更新されない。
つまりあぼーんされた書き込みがあるってことか。可哀想に。
あれだけガキ臭い発言だと教えてやったのに学習力がないとはな
まったくやれやれだな・・・
親切な忠告も吸収できない馬鹿ガキじゃ、そりゃ自分でぐぐれないわけだよ
永久に自分の正義、殻に籠もってるといい
3行にしろボケ。
あれだけガキ臭い発言だと教えてやったのに学習力がないとはまったくやれやれだな・・・
親切な忠告も吸収できない馬鹿ガキじゃ、そりゃ自分でぐぐれないわけだよ
永久に自分の正義、殻に籠もってるといい
>>239 日本語としておかしい チョンかオマエ
q. is this a pen?
a. possible
バカの見本
>>239 バカであるだけでなく、社畜でもあるのか キミは(哀れ)
ライフサイクルについて質問です。
MainActivityでstatic変数を定義して値を入れます。
他のアクティビティやウィジェットでMainActivity.abc のような形で利用できます。
そしてMainActivityを閉じた後も(onDestroyを通過していることも確認しています)
このMainActivity.abcは操作できます。
これはMainActivityはどういう状態と言っていいんでしょうか?生きてるんでしょうか、死んでるんでしょうか?
そして数時間とか何かの負荷がかかるとこのMainActivity.abcは空(ゼロ)になりますが、
代入すれば値は入るし使うこともできます。
これはとても不具合を招きやすい状態だと思います。
MainActivityは生きてるんでしょうか?
そのabcメソッドはstaticになってると思うので
MainActivityのライフサイクルに関係ないと思う
初回クラスロード時に保持されて
プロセスが終了するまで残ったまま
アクティビティから、すでに生成されてるフラグメントにデータを送りたい場合、どうすればいい?
Fragment frg = new Fragment(this);
frg.setData(hoge);
ていうやりかたは、たぶんまずいよね?
おそらくsetArgumentsでデータを渡して、 フラグメント側からgetArguments を使ったほうがいいと思うんだけど、
onCreateViewを通過した後からだと、どこでどうやってgetArguments を使ったらいいですか?
ほらほらボウヤだからそんなウンコみたいな質問ばかりするんだぞ
>>249-251 ボウヤいいか?親切にもう一度だけ言ってやろう
「 ソ レ く ら い テ メ エ で グ グ る 能 力 み に つ け ろ カ ス 」
これから先プログラマーとしてやってけねーぞ?
ボウヤに深刻に足りない力はこれな→「 疑問に思った事は『まず』自分で調べる! 」
高負荷時にMainActivityクラスがアンロードされて、MainActivity.abcもメモリから消滅。
次のMainActivity.abc参照時とかに、MainActivityクラスがクラスローダーにまた読まれ MainActivity.abcは0 、かな。
そもそもstaticを使わないで済む設計を第一に考えろといいたいがな
サービスや他Activityとのデータやり取りのためにstatic化してるのだったらまさに愚か
ここ数日はまた各言語スレで変なのが沸いてるねえ。
>>253 そうやって渡しても良いけど
バックスタック積んだりとかアプリが裏に行って戻ってきたとき
値が保持されていない可能性があるので注意
>>255 それがMainActivityをfinish()してしばらくの間は0でなく値は保持してるんですよ。
それが不思議。
>>253 setArgumentsはフラグメントが引数付きのコンストラクタを使うのがまずい(回転時等)から用意されてるんであって、フラグメントが出来上がったあと、その細かいタイミングは忘れたが、例えばonResume後とかでは普通のセッターメソッド使っていいんじゃないかな。
>>260 不思議じゃねーから。それが仕様であたり前な動きだって言ってんだろ。
どうしてそういう動作するか詳しく知りたいなら自分でググレとも言ってんだろ。
3000文字くらい必要な細かい設計をここで誰かにさせる気か?
仕様と設計理解すれば正しい解放の仕方も自然とわかるって言ってんだよ
ああ、設計じゃなくて設計説明な
いちいち訂正しなくても通じるとは思うが一応訂正しとくぞ
>>260 端的に言うと、その動作が嫌ならstatic変数を使うんじゃない
そしてお前は変数のスコープをググって理解しろ。
パソコンのハードディスクとメモリーの関係、それぞれの装置の得意と不得意についてググれ。
メモリー上にプログラムと変数がどのように展開、格納されてるかについてもググれ。
そしてお前がスマホと同じ機械を作る場合
少ないコストでアプリを何度もすばやく起動でき、ロード時間を節約でき、効率よく同じ物を使いまわせる案を想像して考察してみろ。
その上でSDカードとフラッシュメモリーの得意と不得意についてもググれ。
シングルスレッド、マルチタスク、スタック、ヒープという言葉についてもググれ。
これら全てを調べて深く理解した時、お前のその疑問はスッキリ解消されていることだろう。
そしてその時はじめて俺と同等の場に立てるぞ
>>260 アクティビティじゃないクラスで考えてみると
public class Utility {
statc int filed;
}
このメンバfield は電源ON中はいつでも参照できるけど、最初に参照したり書き込んだりしたタイミングで、
クラスローダーが動いて値が初期化。値を代入しても保持。
Android OSが高負荷とかになるとメモリを開けるためにクラスがアンロード、
staticフィールドもクラスと寿命が一致するので値も消滅。 って感じ?
staticはfinalな定数として使うか、あと汎用関数(utils)の定義ぐらいでしか使ってない。staticというよりはclass variableという表現にしてくれたほうが分かりやすいよね。長いけど
負荷上がってもクラスのアンロードは無いと思うけど
プロセスが死ぬとクリアはされるね
なんで負荷が関係してくるんだよ
お前らGCもしらんのか?
ももりー負荷だろいわせんな
>>266 スタティックを否定するなら
定数もスタティックにする事もない
>>256 >>他Activityとのデータやり取りのためにstatic化してるのだったらまさに愚か
なんで?
>>268 GCだけじゃなくてLMKも動くんじゃない
>>270 各クラスで共通で使う定数がたくさんある場合、定数の宣言をまとめたクラス作ったりするなあ。
こういうときインスタンス作成不要の方が便利だし、共通の名前(クラス名.フィールド名)で定数使いたいからstatic finalたわ
>>268 GCじゃstatic変数は回収されない
端末の負荷云々はLowMomoryKiller絡みだろうけど
特定のクラスだけアンロードするとか聞いたことない
>>274 AndroidだとClassLoaderは1つだから結局は残るんじゃないの?
消えるのはVM終了時でしょ
staticだろうがなんだろうがヒープで参照が切れてればGC対象じゃないの
staticな領域はClassLoaderから参照されてるから、そのClassLoaderが死ぬまでGCされないってことでしょ
そしてAndroidではClassLoaderが死ぬのはプロセスが死ぬときだから、staticな領域のGCを考える必要はないと
>>271 他に方法があるから
公式が非推奨にしてるから
>>278 リークしているっていうのは具体的にどんな現象のことかな?
Androidの場合、GCはされなくても、プロセスがシステムによって自動で削除->再生成されることがあるから、
staticの領域を書き換えて使っているような場合には注意する必要があるのかな
>>280 プロセスごとにブロックで管理しているのならリークしているメモリがある場合プロセスをキルした時にプロセスが使用していたメモリエリア(リークエリアを含む)をごっそりクリアしてくれるのか?
って事です
>>279 ありがとう
変数が多い時はintentでは...は普通でしょ
>>281 新しいプロセス生成時に、旧プロセスでリークしていたメモリの状態までを再現したりはしない
staticと何か関係あるの?
>>283 staticエリアでのリークのお話ですが
>>284 staticエリアがリークなんてするの?
自分で調べようとしないからこうやってウダウダになるんだよ
わかりやすい良い例だったろ?
俺は最初に言ってやったぞ
「説明に3000文字以上必要になるほど細かい仕様上の問題だから自分で調べろ」と
知りたいなら素直に俺の言った
>>264を実践しろやお前ら
リークが無問題ならそもそもメモリーリークなんて言葉は生まれてねえんだよ
リークしてるからプロセスが終わらねえんだよ
多重プロセス化してメモリー圧迫し続け最後はOSごとあぼーんだ
ああ、そうそうstaticでメモリーリーク起こして解決できないでいるような輩は適切な解放手段を知らない輩だ
そういう奴はstaticとは無関係な他の所でも100%メモリーリーク起こしてんぞ
てめえのアプリが原因でOSあぼ〜んさせたくなかったらひたすら技術情報ググって精進しろ
レビュー
「このアプリ使うと重くなる ★1」
「アプリインストールしてからスマホが不安定に。頻繁に再起動される ★1」
こうなる前にな
>>286 まずは人と会話する方法を覚えろ
お前だけ噛み合ってない
>>287 頭おかしいのはテメエだ馬糞
同じ24時間で
2chで技術情報集めるのとテメエでググるのとどっちが効率的だと思ってんだ
真性のアホかよぼっちゃん
>>289 100%噛み合ってますが何か?
「staticで宣言した変数が残るのは何故?不思議」という質問してきてる奴に対しての回答が
>>264であり
その後、それを実践せずに20時間経過した今も
>>265-285と答えわからずのまま
この事態に対しての意見が
>>286と
>>288であり
素敵すぎるほど噛み合ってますが何か?
何処が噛み合ってないか説明してみ
俺には寧ろ俺以外のやつらのいってる事の方が
「staticで宣言した変数が残るのは何故?不思議」という質問の回答として噛み合ってねえと思うんだが
CrossroadsはCreamの名曲
staticでメモリリークが問題になるのは
ActivityだったりViewだったり、まあContextが絡むやつを突っ込んだ場合に
システムは解放してるのに、メモリ上は残ったままになってしまう、というのがほとんど
だまってNG登録しとけよ。
なんでいちいち相手してんだ。
アホなんだよ、ゆるしてやれ
いや、メモリリークで一番の原因になるのは循環参照だろ。
メモリリークは4.0以降はあんまり気にしなくてもいいんじゃない
画像関係は勝手に解放してくれるかんじ
>>296 だな。
Java自体がやたら循環参照起こしやすい設計になってて
そこをGCで補おうとしてるけど、まあうまくいかない面が多々あって
AndroidSDKで余計にそれが悪化みたいな感じだろうね。
俺も最初Androidやった時、PCソフト感覚でいたから
アプリ終了しても完全な終了ではなくスタンバイ状態もどきになってるだけという事に「え?」と思ったものだ。
スマートフォンが携帯電話であるがために、PCと異なり基本的にずっと起動しっぱなしのOSだという点で
安易に再起動リセットできるシステムじゃない時はこの方法が効率いいんだなと
ああ、なるほどなと理解できたがね
AndroidManifest.xmlのtargetSdkVersionを18から19にしたら、
onMeasureの呼び出し回数が減って動きが変わっちまった・・・。
ずっと18のままにしておけば問題ないのだろうか?
303 :
デフォルトの名無しさん:2014/04/16(水) 23:12:01.59 ID:1hJQ0mjG
Buttonを継承したCustomButtonを作っています。
コンストラクタの中でSQLite DBからデータを読み込み、
キャプションに setText() しています。(ここまではできています)
今、設定画面(PreferenceActivityを継承)から
当該DBを更新できるようにしているのですが、
DB更新後に元のMainActivityに戻っても、当然ながら
ボタンキャプションは更新されません。
このキャプションの更新をCustomButton Class内のみで
記述したいのですが、どうすれば実現できますでしょうか?
例えばMainActivityの onResume() 内で
CustomButton のキャプションを更新する
ことも出来るのですが、
MainActivityで記述する量を減らす目的で
CustomButtonを作った背景があり、
この方法では本末転倒になってしまいます。
Buttonクラスに「再描画される時に呼ばれる関数」
が無いか調べていますが、見つかりません。
よろしくお願いします。
MainActivityのコード量を減らすためと言いつつ
Button側は無駄なコード量増えてる気もしないでもないけど・・・
Androidの仕組み使うんだったら直接SQLite叩くんじゃなくて
ContentProvider経由でデータ取るようにして
更新もContentProvider経由にして、
更新時にnotifyChange呼べば
データ取得していたCursor側で更新があった通知受け取れるから
そこで再度データ取りに行くようにすれば良い
それがめんどいんだったらObserverパターンとか使って通知する仕組み作るのが楽かな
305 :
303:2014/04/16(水) 23:52:04.10 ID:1hJQ0mjG
>>304 ありがとうございます。
まずはContentProviderから使ってみます。
lineアプリなんですが昔のバージョンは電話帳から電話する人を選ぶとline電話の選択肢があったんですが今のバージョンだと出ないので削られたんだと思います。
手動で設定することは出来ないでしょうか?
>>304 その質問者と同じようなことやりたいんたけど、データの引っ張り元がDBではなくPreferenceの保存データの場合、実現できる機構ってあります?
MainActivityのレジュームでごりごり書かないと駄目かね。
>>303 onDrawをオーバーライドじゃだめなの?
onResumeの度に処理するのだって無駄なのに
onDrawの度にデータ見に行くって無駄の極みだろ
>>304の言う通りリスナー使えば何の無駄もないんじゃない?
>>309 無駄かどうかじゃなくて
「CustomButton Class内のみで」記述したくて「再描画される時に呼ばれる関数」 を探しているという話だったからさ
初心者から質問を受けた場合は
安直にその質問に直接答えるんじゃなくて
要するにそもそも何をしたいのか、何を困っているのかを問いただして
その対処方法を教えてやること。
基本な。
それなら
>>312が手本として回答すればいいと思うのは俺だけじゃあるまい
本人が基本と言ってるくらいなのだから。
まさか・・・自分で基本示せなくてそんな偉そうな発言してるんじゃ・・・・・・・
>>312 そうだな、根本原因が分からないから的外れな問題を創造してその解決に苦しむ
でも、根本原因を安直に指摘してやっちゃだめだ
その根本原因を見つける方法を教えるべきだな
教えるっつうか自分で考えさせるべき
>>313 2chによくありがちな反応だな
幼稚過ぎるw
上のは ID:CJVCBMj0 だったヤツだろ。 あらら、居ついちゃったよ。
最近android関連スレを荒らしまくっている問題児だろ
>>310 Preferenceの方には対応できんだろ。
>>315 その反応の方が2chによくありがち過ぎる幼稚な反応だろ。常識。
>>318 基本は一緒だよ
ContentProviderの先がSQLiteじゃなくてPreferenceになるってだけで
321 :
318:2014/04/18(金) 08:19:41.02 ID:5FNa9Hhw
>>320 ごめん、よく理解しないでレスした事を正直に言うよ。
デベ公式を流し読みして via SQLiteとか書かれていたから
ContentProviderの先はSQLiteDB限定だと思っていた。違うって事だね。
322 :
318:2014/04/18(金) 08:26:59.68 ID:5FNa9Hhw
ちゃんと読み直したら全然違ってたわ。はずかし。
「複数アプリ間でデータシェアしないのなら、SQLiteDBを直接叩いていいよ」って話だった…。
323 :
318:2014/04/18(金) 13:43:34.97 ID:5FNa9Hhw
度々ごめん、やっぱわかんねーわ。
デベ公式とか色んなブログやらを見ても
相手がSQLiteの話しか書いてないように読める。
ただし、Preferenceを複数アプリでシェアしたいよという質問に対して、StackOverflowの回答に「ContentProvider使え」というのが一つだけ見つかった。
324 :
デフォルトの名無しさん:2014/04/18(金) 14:04:53.74 ID:1cnXArY8
traceViewをみてるとString.formatやらLocale.getDefaultやらが定期的に動いてます。
もちろんLog.vやらString.formatやらは私が作ったところにはありません。
関係あるか分からないけどSurefaceViewを使ったアプリです。
これって原因何?&無効化できない??少しでも軽くしたいんだけど
特定のUriでのqueryの呼び出しに対して
データの入ったCursorを返せればいいので
SQLiteから取得したCursorを返そうが
自前でCursorオブジェクト作って、そこにデータ詰めて返そうが
使う側は意識しなくていいようになってる
自分はCursorのサブクラスのMatrixCursorを使ってた気がする
327 :
318:2014/04/18(金) 20:28:52.74 ID:5FNa9Hhw
>>325-326 なるほどどこを誤解してるのか判った。
CursorをSQLiteでしか扱ったことがなく、
CursorはSQLiteでのみ利用するものだと
勘違いしていた。
ありがとう。
>>151です
静止画のデータをシンプルな動画に変換して出力するためにどうすればよいのか質問したところ、
OpenCVと言うヒントを貰ったためOpenCV2.4.8forAndroidを導入して見たのですが、
肝心のVideoWriterクラスがサポートされていないようでうまくいきませんでした
どうすればよいかわからず困っています
androidNDKなどの知識が必要になるのでしょうか?それともFFmpeg(?)なるものを利用しなけらばならないのでしょうか
>>328 Stack Overflowでも調べた?
eclipseでエラーがー出ます
今日Windowsを再インストールした後にJDKSE 7u55をインストールしたんですが
エラーが出てエミュレートしません
Invalid layout of java.lang.String at value
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (javaClasses.cpp:136), pid=1048, tid=4764
# fatal error: Invalid layout of preloaded class
#
# JRE version: (7.0_55-b13) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.55-b03 mixed mode windows-amd64 compressed oops)
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
以下略
JDKの32bit版も入れてみたのですがeclipseの起動時にエラーが出てeclipse自体が起動しません
解決策をご存知の方お願いします
Windows8.1ですが再インストール前は使えてました。
ADTは22.3です
環境構築すらできない上に
それをプログラミング質問スレで
訊かれてもなぁ…。
>>330 インストール場所がProgram Filesとかになってない?
実行/デバッグ設定でAndroidじゃないものを実行してるとか
eclipseを起動オプション付加して設定clearすればいけるんじゃね
あとjdkを32bit版使うならeclipseも32bit版使うとかちゃんと揃えてんのか
【 プログラマーとしてやっていけるかどうかの判断基準 】
壱:開発環境を自力で構築できる
初心者向けの本立ち読みしてきたが
開発環境構築するまでに90ページ近く浪費してた
しかもverが古くて、そのままの手順じゃ落とせない
&ウィザードも変わってるから前に進めない
小さな親切大きなお世話だった。
ばっさりとカットして ググレ でいいと思うんだ・・・
>Windows8.1ですが再インストール前は使えてました。
これがひっかかる
まだ8.1にしてないからアプデすると何か変わるのかなあ
はじめてandroid開発をしていて、最初の起動画面というかtopページというの?をデザインしていて
webでよくみる動きのあるページっていうのは作れないのでしょうか?
単純にボタンが浮き出てきたりなど
そのような解説サイトがあれば教えてほしいです
>>338 Android アプリ開発 アニメーション で検索
+フェードインorフェードアウト
時間がたつと実機にダイアログで現れる正体不明のエラーがあります
このエラーが出た形跡があるか判別する方法、または出た瞬間にどこかが呼び出される方法が
ウィジェットでないでしょうか?
そもそもエラー後はウィジェットが機能してない状態かもしれませんが
ログを見ろ
>>340 その情報だけだとエラーの原因は分からないけど(どんなアプリ?、ダイアログに表示される内容は?起動からどの位たつと発生さるのか?)
エラーの再現性が分かっているなら、素直にUSBケーブル繋げてログキャット監視した方が早いんでない?
その文章だとあなたのアプリがウィジットなのかもわからないし…
エスパーすると、ライフサイクルの処理が、上手くいっていないに一票!
ウィジェットも使ってます
ダイアログにはただ「○○が停止しました」だけだったと思います
半日以上経って出るか出ないかなのでエラーの再現性はわかりません
該当箇所は全部try catch で囲ってあるんですがそれでもダイアログエラーが出ることはあるんでしょうか?
やっぱりライフサイクル関係ですかねえ
ログ今見てみたら他のパッケージも結構エラー出してて該当箇所がはっきりしませんでした
クリアして今から監視してみます
エラー出ましただけでわかるわけないだろ・・・
エラー出そうなとこでcatchしてファイル出力でもしとけ
情報の出し方が下手くそすぎて
本当に解決したいのか疑いたくなる。
なぜこんな奴がプログラミングをやろうとしているのか。
最初から知識がないのは当たり前で
質問しにくるのはおおいに結構なのだが、
質問のセンスが悪すぎ。
プログラミングには向いていないと思う。
まあ
日本語を論理的に組み立てられないのに
プログラミング言語でマトモに記述できるわけがないわな。
>>345 変なのにレスされてるけど、
質問の仕方が下手くそな質問者が増えたよね。
あたりまえの聞き方をすれば回答させる率は高まるのに、わざわざ情報を隠して回答をもらえにくくしてる。
どこを省略したらどう誤解される(可能性がある)かを予測できないのかなぁ。
>>349 ググれば解決するのにここで低レベルの質問するって事は…馬シカって事だ
2chの質問スレで情報得ようなんて考えてる時点でプログラミングどころか何の作業も向いてない
あと質問者のレベルが下がったなんて偉そうに。
潜在的有能な初心者は多数ROMってると思うが、
回答者のレベルがこの程度だから、ここで聞いても無駄だろうと思われてる。
回答者がゴミしか残ってないから、バカな回答者しか集まらない。
×バカな回答者
○バカな質問者
>>351 > 2chの質問スレで情報得ようなんて考えてる時点でプログラミングどころか何の作業も向いてない
なんであなたここにいるの?w
ttp://team-hiroq.com/blog/android/android_multithread.html ここのコードをそのまま参考にしたのですが、
ログを見てもスレッドが動いてる気配がありません。
起動してから1度しかログが返ってこないのですが、どうしてかわかりますでしょうか?
(new Thread(new Runnable() {
@Override
public void run(){
mHandler.post(new Runnable() {
@Override
public void run(){
Log.d("TIMER","TIMER");
}
});
}
})).start();
threadはループしてくれるものではない
え?
スレッドでタイマー作ろうと思ってたんだけど?
だめなん?
>>355 Timerクラスがあるよ
Android Timerだけで参考になるページがみつかると思う
>>359 いえいえ、あと少し補足しときますわ
356さんがいうようにThreadはループしてくれるものじゃない
新規にスレッドを作成してメインスレッドとは別の処理をさせるなら
while文で無限ループを作成するとか、スレッドをsleepさせないといけない
あなたがやろうとしていたことはAndroid thread sleep whileで検索に引っかかる内容とかじゃないでしょうか?
(忍法帳レベル低くてリンク貼れない…)
>>360 元サイトのコードを見たらOnClickとかに入ってたから、
>>355のコードも何のメソッドに入ってるのかが分からなければ
そのメソッドが定期的に呼び出されるものならループにはなるだろ
>>361 そうですね
コードの全体像が見えないのでThread内と外のどちらでループさせるのかは置いといて
Threadを使用してタイマー処理をする時の一般的なお話をしたつもりです
その辺も補足するつもりで検索ワードを提示したのですが、言葉が足りなかったかもしれません┏o ペコリン
363 :
デフォルトの名無しさん:2014/04/20(日) 23:06:05.14 ID:d0kiQ5/V
365 :
デフォルトの名無しさん:2014/04/21(月) 02:11:35.26 ID:ckLxtVSe
そもそも、Android上にJVM突っ込んでJavaプログラムを普通に動かすとかってできないん?
それならjarファイルをもってくだけですむんだけどな
>>365 やろうと思えばできるんじゃないの?
ただし、そのJVM上で動くjarファイルからAndroidの機能にアクセスできないだろうから
Activityとかは作れないのかな
>>365 その普通のJAVAってのがよく分からんが、GUIに依存しないJARならこのスレ的には自分で簡単に組み込めるでしょ。
何がしたいのかいまいちわからないけど
AWTとかSWTとかSwingのUI周りは全滅だし
バッチ的な使い方が出来れば御の字だと思うよ
>>351 …ということは、君も君自身が言っている「ゴミなバカ回答者か質問者」のどっちかってこと?
371 :
デフォルトの名無しさん:2014/04/21(月) 20:57:36.12 ID:ckLxtVSe
>>366だけど
まあ要は
>>368が言ってるみたいにWinとかLinuxデスクトップ環境用で動いてるSwingをそのまま実行できるんじゃない?
って思ったってこと
AndroidってLinuxベースなんだよね?ちがったっけ
まぁUI周りは無理としてもロジック部分はそのままソースコード持って行ってコンパイルすればそのままうごかせるんだよな?
Javaでシステム作ってる人だからAndroidも軽く出来るだろっていつ軽く言ってこられるかわからんからビクビクしてる
372 :
デフォルトの名無しさん:2014/04/21(月) 21:13:06.01 ID:FRraitkl
一度書けばどこでも動くのがJavaなんですよね。
まあそういうわけなんで動きますよキット。
JavaをCOM対応に拡張したら訴えられたメーカーがあったくらいですからね。
一つのコードがどこでも動くというのは、それくらい大事なことなんですよキット。
373 :
デフォルトの名無しさん:2014/04/21(月) 21:31:48.03 ID:O6K4S0Ti
AndroidのButtonのことなんですが、
Button on = (Button)findViewById(R.id.button1);
on.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
}
});
というやり方以外でクリックイベントを発生させる方法はありませんか?
>>371 ロジックベースでの話ならJarを取り込めばそのまま動くものがほとんだと思うけど
建前上AndroidはJavaではないので動かなくても泣いちゃダメ
そもそもイベントは発生してない件について
Buttonの変数名に on とか付けてる人なんだから、察しろよ。
379 :
デフォルトの名無しさん:2014/04/21(月) 23:40:34.61 ID:/5f0VTlX
これからAndroidアプリ開発の学習をする初心者です。
C++で開発を行う際、CPU依存毎にビルドを行う事になると思います。
マーケットで公開する際、
各CPU毎にアプリを公開するわけにはいかないでしょうから、
公開するのはJavaプログラムの箇所のみで、
そのJavaプログラムが各CPU毎にビルドされたプラグイン形式の実体を
JNIで読み込む形がベターであると判断しました。
この認識で合ってますでしょうか?
え、CPUごとにアプリ公開できなかったっけ。
ARMさえサポートしてればほぼ問題ない気もするけど。
CPUごとにも出来るし
一つのAPK無いに複数(arm,arm-v7,mips,x86)のsoを組み込むこともできる
本を買ってスケジュールアプリを作って見たのですが
初期のlistviewやbuttonなどデザインがあまり気に入らないのですが1つ1つ色や形などデザインしていくしかないのでしょうか?
>>382 気に入らないなら使わなければいいじゃん
デザインは全て手作りのオリジナルアプリにするぜ→力尽きて部分的に標準のGUI、設定画面に至ってはオリジナリティの欠片もなし
答えたくない人や日本語が不自由な人は
無理して答えずスルーすればいいのに
387 :
379:2014/04/22(火) 08:37:58.70 ID:isodDFV+
>>380-381 ご回答ありがとうございました。
考えられる方法は全て出来ると言う感じなんですね。
学習中、ご教示を乞いに顔を出すときがあるかもしれません。
その際は宜しくお願いします>皆様
>>386 つまらねえんだよ。おまえ。馬鹿は気づかねえのか?
自分ちなら叩くけど、外で見ても無視だな
自宅のPCの時は叩いて、出先のスマホの時は叩かない、って事か
androidからPCへメッセージ送るのは何を使ったら便利でしょうか?
ちなみにPCからandroidにメッセージを送るときはGCM使っています
電話じゃないかな?
android初心者です。
タスクを作成したメインのアクティビティからfinish()を呼び出したらタスクが終了するものだと思ってました。
実際にはfinish()を呼び出しても、タスクが終了する訳ではないようですが、安全にタスクを終了させる方法ってないのでしょうか?
>>395 可能
だが、何故今の仕様になっているかをまず調べよう
>>393 GCMの送り先をPCのChromeにできたはず
ゲーミングPCなのにNDKフリーズ多発し過ぎて俺には無理
C++でもっとまともな開発環境無いの?
ちないろいろ試したからNDK使えは無しで
C++でNDK使うなってのは難しいね
>>397 chrome拡張作って拡張からアプリに何らかの通知を出して受け取る方式ね。
面倒だけどそれがいいのかな。
原因切り分けないとPCが悪いのかターゲットか環境構築が悪いのか
コードが悪いのかフリーズしてるのはどこか
ゲームPCなんて電気馬鹿食いだから省エネノートでもかって正しくクリーンインスコすれば治る予感
>>399 マジか諦めてjavaでやるしか無いのか
Mono for Androidはどうよ
とにかくjava使わずに処理速度高めたアプリ作りたいんだよな
ちなMonoはC♯ですが
./ ニYニヽ
r、r.rヽ / (0)(―)ヽ
r |_,|_,|_,|/ ⌒`´⌒ \ ふむふむ・・・なるほどなるほど・・・
|_,|_,|_,|_,| , -) (-、.|
|_,|_,|_人 (^ i ヽ__ ノ l |
| ) ヽノ | ` ⌒´ /
| `".`´ ノ
入_ノ
\_/
/
/
./ニYニヽ
r、r.rヽ. / (0)(0)ヽ
r |_,|_,|_,|/ ⌒`´⌒ \ で?っていう
|_,|_,|_,|_,| , -) (-、.|
|_,|_,|_人 (^ iヽ__ ノ l |
| ) ヽノ | `ー'´ /
| `".`´ ノ
入_ノ
\_/
/
/
/
/ か パ い な
| °タ つ ん
| | も だ
| ン の `
__|____
/::::::::::::::::::::::::::::::::\____/
. /:::::::::::::::::::::/⌒Y⌒ :::::\
/::::::::::::::::: -‐{ u | u ノ- ::::::.
/::::::::::::/ ―- (___) -‐ ヽ|
|::::::::: / --―‐ | ―- |
|::::::::::{ \ -― | ‐- }|
::::::::::{ . __|__ ノ .
゚。:::::\ ∠二二二\_/二二ヽ
(ニニニニ| 荒し辞典 冂 |
|::::-―ァ'⌒ヽ――┐ |=| /⌒ヽ
|:::::::::::: 、_丿 | |=| 、_丿
ndkがフリーズするって何?ただのビルド環境なのに、意味わかんない。
頭がフリーズしてるんだよきっと
お前馬鹿だろ年がら年中2ちゃんに貼り付いて自演して叩いてみんなのため自分から命たってください
キメェ野郎だなホントに
大したこと無いから生産的なコメント一つ出来ずにこの板で荒らしまくってんだろ糞ニートが
そもそもNDK使ってフリーズするっていったらその周りの環境は大体わかんだろ
アスペか?人間の癖にプログラムみたいに融通のきかないカスみたいな頭なんだな
まあ、x86用ndkにx86-64用awkが紛れ込んでまともにビルド出来ない、なんてことはあったけど、フリーズとか関係ないしね。
反応するなよそうやってくやしがると喜ぶんだから
おいチキン野郎自分の意見一つ自信無いからID変えなきゃはけないんだろ
キモ!キモ!砂肝!うな肝!
>>416 お前も荒らしか?
反応せずにNGIDに登録しとけ。
エミュレーターがフリーズするとかじゃないの?
ちなちなうるせーなw語彙力ないのかよ
教えてください
xmlで、
android:layout_span
を使うと実機上ではちゃんとレイアウトされるのに
eclipse上のエミュレータでは命令を無視されるのか配置が崩れます。
原因分かる方いらっしゃいませんか?
eclipse上のエミュレータってのは何だ?
本日の精神病患者 ID:9BGIU+bj [9/9]
>>420 width,hightが固定値なんじゃないの?
openglを使ってみたんだがゲームでマップをスクロールするとき差分描画すると思うんだけど
これopenGL使ってどうやるんだろ?
オフスクリーンをbitmapで保持してそれをCanvasで更新して、最後にできあがったbitmapを
画面サイズに合わせてopenGLで描画、これってあまりOpenGL使う意味ない気がする
そういうもの?
>>424 取りあえずUnityでも使ってみて、理論を勉強するべし
マップチップの集合ビットマップをテクスチャとしてGLに食わす
(中略)すると超スピードで大量のキャラを表示できる
こういうもの
つまり差分描画などする必要ないので画面に描画されているものは
毎回全て描画しろということでそか?
試してみるかな
428 :
420:2014/04/24(木) 19:25:19.77 ID:FkJMlpDl
レスありがとうございます。
>>421 仮想デバイスです。Nexus7に設定してます。
>>423 widthもhightもwrap_contentにしてますがズレてしまします。
EditTextがクリックされたときにOnFocusChangeListenerのonFocusChange
で入力Activityを呼びだしているのですが、一瞬ソフトキーが表示されてしまいます
ソフトキーを呼びださないためにはどうすればいいでしょうか?
バックアップしたプロジェクトの*.jarが、HDDを圧迫して邪魔だったんで全部削除したんだけど、
200メガくらい増えるはずなのに、空き容量が増えてる気がしないんだが。
一気に削除したら何かまずいことあったっけ?
ゴミ箱捨てた?
もちろん、捨てました。
プログラマとは思えない質問内容だな
>>430 ソフトキーボード 非表示でググれば色々出てくる
プロジェクトインポートする時にワークスペース直下にsrcフォルダやらぶちまけちゃって
きったねーな削除すっかってEclipseから完全削除したら
ワークスペース直下の他のプロジェクトフォルダまで全部消えたぞwwwワロタwww
ワロタ・・・
「システムの復元」でワークスペースぐちゃぐちゃになるよね。
なにそれこわい まあマメにバックアップしてますが
システムの復元有効にしてるやつとかいたのかよ
なにもしてないのにパソコン壊れちゃうタイプの人には必須の機能
そのうちウイルスにやられて痛い目みるぞ
eclipseで単体テストやる簡単な方法を手取り足取り詳しく教えてください><
レス代行通してるのでお礼レスはしませんがよろしくお願いします><
やったこと:
JUnitやろうとしたらNoClassDefFoundError
↓
ビルドパスにAndroid.jar追加したらRuntimeException: Stub!
↓
うっきーーーやってられっか
レス代行でお礼する
という発想は無いのかよ。
あったらそう書くだろ
馬鹿なの?
>>444 無いと分かっていて嫌味で書いている、
という事くらい分からないのか?
>>442 JUnit使用したことないからわからんけど、
そのエラーメッセージで検索するだけで幾つもページが引っかかるんだから
それ見て解決できない?
煽り抜きでレス代行通してだと、回答者と話せないから
ここで質問する意味ないでしょ
自己解決できないなら、現段階では導入諦めたほうがいいよ
JUnitじゃなくてAndroid用のUnitTest用のライブラリが別にある
初歩的な質問失礼します。
以下のコードでコメントアウトを解除すると、onClickメソッド内に処理を書いていなくてもデバッグ時にNullPointerExceptionって怒られます。
どこがまずいか教えて頂ければ幸いです。
(略)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn1 = (Button) findViewById(id.button1);
EditText edTxt1 = (EditText) findViewById(R.id.editText1);
TextView txtVew1 = (TextView) findViewById(R.id.textView1);
/*
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
*/
(略)
>>450 コピペミスかもしれないけど、R.id.button1のR.がぬけてるね。
もしそれでビルドが通ったなら、btn1にはnullが入るから、set〜メソッドを呼び出そうとした時点で当然ぬるぽになるね。
>>451 返答ありがとうございます。
R.id.button1に修正してみたのですが、結果は変わりませんでした。
ちなみにコードの冒頭でandroid.R.idはimportしてあるのですが、button1はid.button1の記述のみでビルド通るのに対して、残り2つはR.id.〜と記述しないとビルド通らないようです。
このへんに違和感を覚えるのですが、原因としてありうるのはどのあたりですかね?
>>452 リソースIDが正しいかもう一度確かめるくらいしかアドバイスできないですね…。
デバッグしているはずなのに
何がnullになっているのか判別できていないという
不思議(笑)な状況ということ?
それは大変だね。
>>452 android.R.idはimportをインポートしてはダメな気がする
おそらくbtn1のインスタンスを取得できてないと思う
ぬるぽでてるんだったらそのログちゃんと読めばいいと・・・
android.R.id.button1
は定義されているものだからねぇ。
android.R.idをimportしているのだったら
どういう動作になるのか考えてみたら良いのに。
考えたくないのだろうか。
おまえら、すげー気持ち悪い。
ああ、気持ち悪いのはひとりだけか。
自分以上の馬鹿はなかなかいないから
ここぞとばかり嬉々として書き込んでるのか。
>>457 そういうこと書くんだったら
黙って的確なアドバイスをしてあげたら良いのに。
気持ち悪い奴だな。
>>457 気持ち悪い同類さん、ちーっす。
お前も俺みたいなのを見つけては嬉々とレスするタイプなのかな。
自覚って大事だよね。
初歩的な質問ですみませんでした……。
自分で色々調べてやってみようと思います。回答してくれた皆様ありがとうございました。
>>461 import android.R.id を消して、
R.id.**** に記述を統一すればとりあえずは解決すると思うよ。
importとは何か
それをしないとどう記述しなければいけないものを
importすることでどう省略できるのか。
それはなぜなのか。
とか、のちのち分かるようになると思うよ。
初歩的な質問ですいません。
OS XでAndroidアプリケーションプロジェクトを作成しようとしましたが、Activity名を設定し、完了を押しても「ビルダー'Android リソースマネージャー'の実行中にエラーが発生しました」とエラーが表示されてプロジェクトが作成できません。
activity_main.xmlも生成されません。新しくxmlファイルから作ろうと思っても同じエラーが表示されます。
開発環境はeclipse4.3.2、sdk、adtともに22.6です。22.3のバージョンでも試してみましたがうまくいきません。
windowsでは開発環境は整えれました。何が問題なのでしょうか
mac
466 :
デフォルトの名無しさん:2014/04/28(月) 13:26:16.99 ID:eAmbfGPL
ActivityからgetResources()で返ったリソースクラスを
外部クラスのコンストラクタに渡すと何故かそれだけで強制終了されるんですが
何なんですかこれ?
467 :
デフォルトの名無しさん:2014/04/28(月) 15:55:45.42 ID:2T65va79
JNIでC/C++をコールしなくてはならないのは承知しているのですが
C/C++によるAndroid NDKでのアプリ開発では
JavaによるAndroid SDKでのアプリ開発の知識は必須ですか?
もともとC/C++エンジニアであるため
Javaによるアプリ開発を一から勉強してからNDKだと気が遠くなりそで・・・
>>467 あなたが上級プログラマなら、1ヶ月もあれば組めます
>>468 上級かと問われれば違うと答えます。
しかし、聞いた私がバカだった気がしました。
ありがとう。
言語の仕様よりもプラットフォームに関する知識の方が必要かと
471 :
デフォルトの名無しさん:2014/04/29(火) 10:35:06.06 ID:bj25qBGL
SQLiteDatabaseのqueryメソッドが良く分からないです。
selection(SQLでのwhere句部分)で計算式を使いたいのだけど、
col1+col2<? のようにやるとうまく機能しないです。(col1,col2はinteger)
試行錯誤の末、どうやら col1+col2<1*? のようにするとうまくいったのですが、、意味不明です。
計算式を使用する場合、何か制限あるのでしょうか・・
472 :
デフォルトの名無しさん:2014/04/29(火) 12:43:13.98 ID:bj25qBGL
その他いろいろ試した結果、
?は ' 付きで展開されているような気がしてきた。。すなわち
select * from table where col1+col2<'値' のように展開されている。
sqlite3でこれを実行するとうまくいかない。でも、
select * from table where col1+col2<1*'値'
にするとうまくいくので現象が合う。
スレチ
sqlite独自構文もあるからgoogle様に構文聞いて、
sqliteのコマンドラインツール使って直接叩いて試せ
馬鹿には無理
?は任意の一文字でintegerではない
任意の数値一文字を表したいなら[0-9]とすればいいということだろうか
sqlite使ってたアプリ作って勉強しようかな
>>471-472 where col1+col2<'値'
'値'は文字列じゃないの?
だから、? を使うと文字列になるのでは?
数値型で比較する方法を、探したら?
477 :
デフォルトの名無しさん:2014/04/29(火) 15:41:58.16 ID:bj25qBGL
>>477 それだとsqlインジェクションに注意な
ぼくには無理
文字列として比較してるか数式として比較してるかの違いじゃね
アプリ内SQLiteでSQLインジェクション対策する必要なんてあるのか?
万が一クエリに使われる文字列がユーザ入力だったとしても
その結果値をまず見れないだろ
そもそもrootとられてdbファイル見られる時点でどうしようもないが
インジェクションは情報見るだけじゃないけど
あるアプリの、通常なにか文字を入力する所に特定の文字列をいれたら
そのアプリのデータすべて無くなりました
それはこのアプリの仕様です、で問題ないなら対策しなくていいんじゃね
>>471-472 似たようなケースではまったことがある。
そのときは「+0」を入れるとうまくいくことがわかって
型の問題と推測して最終的にはCAST(? AS INTEGER)とすることで
対処したような記憶がある。
「*1」「+0」と「CAST」の違いはキャストが暗黙的か明示的かだと思う。
原因については、Androidのソースを追っていくと
確かSQLiteProgramのbindString()に行き着くはず。
(つまり、すべて文字列としてbindされていて、bindLong()などは使われていない。)
SQLiteのCASTについては、
http://www.sqlite.org/lang_expr.html のページの下のほうに説明があるよ。
構文はCAST(<expr> AS <type-name>)
>>483 うぉぉ、感謝。androidのapi、やっつけ仕様も多いからほんと苦労する。
データベースは複雑な条件式で目的のデータを取得するのではなく
なるべくシンプルな条件式で目的のデータにたどり着けるように設計するものだよ
KVSですね
わかります
システムの起動時にサービスを実行するというのをやりたくて
techboosterの通りにBOOT_COMPLETED等を
マニフェストに書いて以下を記述したのですが
public class StartupReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
Toast.makeText(arg0,"StartupReceiver.", Toast.LENGTH_LONG).show();
}
}
アプリを実行、終了して端末を再起動したのですが
このサービスは実行されないようです。
これは記述されたサービスが実行されるという性質のものではないのでしょうか?
どこを修正すればよいでしょうか?
Intentが届かないとToastが表示されないだけで実行されてるのでは?
>>487 俺も似たようなことやったけど
マニフェストを他のサイト見て修正したら動いた
「実行中のサービス」を見て、ほんとに実行されてないか確認した?
2.xではトーストの表示が確認できました。
「実行中のサービス」にはありませんでした。
しかし4.xでは出ませんでした。
他のサイトも調べてみます。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
4.xではこのpermission書く位置を中でなく皆と同じ場所にすることで動きました。
アクションバーのドロップダウンナビゲーションについて聞きたいのですが、
onNavigationItemSelected(int position,long id) 内で、
transaction = getFragmentManager.beginTransaction();
switch(position) {
case 0: transaction.replace(R.id.container,new MyFragment1()).addToBackStack(null).commit();
case 1: transaction.replace(R.id.container,new MyFragment2()).addToBackStack(null).commit();
}
のような感じでフラグメントを切り替えています。
ドロップダウンリストからアイテムを選択すれば、期待したとおりに切り替わるのですが、
システムのバックボタンを押してフラグメントを元に戻した際、アクションバーの現在選択されているアイテム名のところが元に戻りません。
これは、自分で何か、特別の実装をしないといけないのでしょうか?
自動では戻らないのでしょうか?
gmailの添付をjavamailで取得したく以下のコードを実行、、
2行目getContent()で取得したobjの型がcom.sun.mail.imap.IMAPInputStreamなる型で困っています。
MultipartなどにcastしようとしてもClassCastで落ちますし、
IMAPInputStreamをどう処理したらいいかがわかりません。
javamailのjarは、
code.google.com/p/javamail-android/downloads/list
からDLした物を使用しています。
495 :
494:2014/04/30(水) 05:33:38.83 ID:ARfln2Xg
コードは以下になります
Message m = fol.getMessage(i);
// com.sun.mail.imap.IMAPInputStreamなる型が返る
Object obj = m.getContent();
if (obj instanceof Multipart) {
Multipart multiPart = (Multipart)obj;
// multiPartから添付取得処理
}
よろしくお願いいたします。
BroadcastReceiverはサービスじゃねえ
それからMainActivityをintentで呼びたいのですが
通常setContentView()で指定した形式で表示されますが
場合によっては無表示で呼びたいのです。
マニフェストでandroid:theme="@android:style/Theme.NoDisplay"指定すれば無表示になりますが
マニフェストで1回きりの固定定義にすると表示の有り/無しの切り替えができません。
これを場合によっては無表示とする方法ないでしょうか?
setContentView()を書かないとエラーだっけか?
>>497 MainActivityを呼び出すstartActivityForResultのintentに
「setContentViewを呼ばないフラグ」を設定する
MainActivity側でgetIntent()して得たintentに
「setContentViewを呼ばないフラグ」が設定してある場合は
setContentViewしない
書かなくてもスタイルのベース背景は表示されるので無表示にはなりません
無表示って真っ黒にしたいってこと?
テーマをコード上で設定/設定しない。にするか、
真っ黒なFILL_PARENTなLinearLayoutを全体表示するとか
工夫すればどうとでもなる思う
Theme.NoDisplayと同じ、つまりホームが見えたままの状態ということです。
>テーマをコード上で設定/設定しない
そういうのがあるんですか。
普通に透明Activityでぐぐれ
それでできそうです。
ありがとうございました。
505 :
パイオツ:2014/04/30(水) 19:46:38.80 ID:17GkjL7+
まっさらな初心者はどの本読んだらいいでしょうか?
大きな本屋に行って少し立ち読みしてから分かりやすそうなのを自分で選んで買うのが一番。
本が解説してるAndroidのバージョンには注意な。
4.0以降のやつならだいたいOK。
>ACTION_CLOSE_SYSTEM_DIALOGS システムダイアログが閉じられた
これ別に実機でダイアログエラーが出た後に呼ばれる訳じゃないんですね。
ホームボタンが押された時とかで。
ダイアログエラーの後で呼ばれるのとかはないんですかね。
意味不明
あー、OSが出してるエラーダイアログのことなのかな?
だとしたら無理なんじゃないかな
アプリがバグって不正に終了してしまったから、OSがそれを検知してダイアログを表示しているわけだから
「OSが出してるダイアログ」であって「自分のアプリが出してるダイアログ」ではないからなそれ
そうですか。。
質問失礼します
やりたいこと
taskerとsl4aのpythonを連携させてシステム領域(data/data/)のsqlite3データベースを書き換える
pcで動作確認済みのスクリプトをsl4aにコピペして実行(taskerからも実行してみた)したがunable to openと表示されデータベースを開けませんでした
おそらく原因はroot権限を与えていなかったことだと思います
そこでshellからsuしてpythonを呼び出すことをしたいのですが「python ○○.py」を実行してもダメでした
つまりpcで言うと「sudo python ○○.py」をすればいけると思うのですがやり方が分かりません
そのやり方か他の方法があるなら教えてください
市販の端末はsudoもsuも入ってないぞ
>>511 それができてしまったらサンドボックスの意味がないわけでして…。
rootとるしかないですね。
rootedの自前端末で使うためのもの
を作ってると思ったんだけど違うのかな。
もちろんrootは取ってますbusyboxとかsecuresettingsとかhelperとかも入ってます
nexus5です
ListViewのフッターの大きさを動的に変えたいんだけど、エラーが出てしまいます。
x、yの大きさ指定をする方法はありますか?
ListView lv = new ListView(this);
ProgressBar pb = new ProgressBar(this);
pb.setLayoutParams(new LayoutParams(100,100)); ←この指定だとエラーになってしまう。
lv.addFooterView(pb);
ポリシー違反の警告ってメールのみで来るのか教えて欲しいのですが
今日デベロッパーコンソールにログインしたら以前のポリシー更新時に表示されていた、
「3月28日にポリシーが更新された云々。15日以内に云々」
っというのがまた表示されてたんですけどこれってグーグル様からの違反に対する警告なんですかね?
少し思い当たる所があったのでストア情報を修正したりしたんですけど、不安なので教えてください
それはただ単に「利用規約を変更したから目を通してね」の通知だとおもうよ
>>516 エラーの内容を記載した方が回答して貰えると思うよ
>>518 やっぱりそうなんですかね。ありがとうございます
変更前にも出ていたし変更直後も出ていたのにまた出るのは告知以外の理由が?っとちょっとびびってしまって
久しぶりにAndroidSDK入れてやってみたけど
バンドルセットとかいうやつで導入は簡単で良くなってるけど、
手持ちの2.2用に古いバージョンでプロジェクト作るとActivityのソースもなにも生成されなくて
そんなとっから自分で作れっての?………
Javaは少しできますがandroid用のJavaを使わないといけないみたいなことがあるんでしょうか
それとも互換性があるのでしょうか?
>>522 むしろ、毎回作られるハローワールド処理とかいちいち消したいの?
というか、ちゃんと雛型は作成してくれるぞ、何か間違ってるんじゃないか。
>>523 言語としてのJavaは全く同じです。
もちろん標準ライブラリも使える。
フレームワークが全く違うと考えるとよいよ。
>>527 そんなバグがあるんだ、失礼。
アクティビティクラスを作っても、マニフェストに記載してないとかそんなオチなんじゃ…。
>>528さすがにそこまではw
起動時にハングしてて
同じソースを古いプロジェクトに入れたら動いたのれすよ…ワケワカメ(´・ω・`)
>>528 22.6から新規でプロジェクトを作成すると、フラグメントがデフォルトで作成されるようになったようです。
その場合、最小起動構成をAndroid4.0(API14)より前にする場合、サポートライブラリのプロジェクトをインポートする様になります。(フラグメントが使える+Holoの見た目が水色を基調とした4.0と同じようになる+メニューがActionbarになるなど)
リンク先にあるようにSDKマネージャーでSDKを最新にした場合は、eclipseのPluginも最新にしないと、Activityやレイアウトが生成されないので注意が必要みたいですね
フラグメントって何が便利なのか教えて。
つーかEclipseとAndroidSDKってバージョンアップもっと安心して行えるようにしてほしいよな
今まで普通に動いていたのが急に動かなくなったり環境破壊が多すぎで怖すぎ
開発途中にバージョンアップ来ても
1つの開発プロジェクトが終了するまでは絶対バージョンアップしたくないししないw
安易にバージョンアップすると無駄なことで1日とられてイラつき商品の目玉だw
それ同感w
リソースにxxhdpiの画像を用意しておけば
hdpiの端末では半分のサイズの画像が用意されますが
これはいつ生成されるのでしょうか?
使うたびに縮小処理が走って負荷になる?
ProgressDialogでプログレスバーがワサワサ動きながらパーセント数字も更新したんだけど
isIndeterminate(true)するとincrementProgressByで数字が更新されず0のまま
何とかなら無いでしょうか?
この機能を使うとバッテリーを大量に消費してしまうというのがあったら教えて下さい。
例えばパーミッションのこれとかは
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
バッテリー食いになりますか?
パーミッション追加しただけじゃほぼ何も変わらない
"Running Android Lint" 中に内部エラーが発生しました。
org/eclipse/jdt/internal/compiler/ast/UnionTypeReference
ってエラーが急にに出始めたんだがどうすればいい?
それまできちんと動いてた他のアプリを編集しても同じのが出るんだけれど
フラグメントにViewを表示させる方法が
サッパリわからん
>>539 onCreateViewでinflateしてViewにいろいろしてreturnが基本
どうやったら、フラグメントに表示できないViewを作れるのか、そこから聞きたい。
ソース出せ。
startForegroundで Notificationを表示している Serviceを Settingsから停止させると、onDestroyが呼ばれないので stopForegroundを呼び出せない件について
stopserviceでサービスごと消しちゃうことで解決しました
String[]のFilenemeにファイル名が配列が入っていて、
File[]に渡したいんだけど、Filesがnullになってしまいます。
どこを直したらいいでしょうか?
File[] Files = new File(Fileneme[0]).listFiles();
onCreate内のgetSystemServiceとかを他のクラスに移す方法を教えて下さい。
初歩的な質問ですいません.
Android云々の前に論理的な思考を養った方が良いんじゃって質問が多いな
そりゃあ、
論理的な思考をできるのなら
こんな質問は生まれないし
そもそもこんなところでオマエラに質問などしない。
>>549 そうですか。報告ありがとうございます。
ですがここはokomeda.netのサポートページではありませんので
okomeda.netに記載のメールアドレスにご連絡いただけますでしょうか?
サポートさせていただきます。
hello
mのような記号はどのようにだしますか?
今、YouTubeを見ながらつくっているのですが、そこて引っ掛かってしまいました
なんかここを学校みたいに思って0から全て聞いてくるのが住み着いて面倒臭いなあ
みんな自分で必死に調べてどうしてもわからないって時に聞いてんだよ
無視するか茶化すかで対応すれば良いと思うの。
あんまり変なことやろうとしない限り、ぐぐれば解決するブログやサイトが大抵ある
見つからないないのはぐぐりが足りないだけ
ちょっと聞きたいんですが
みんなって、最少SDKのAPIレベルって
どのくらいに、設定してる?
>>557 GooglePlayに出すなら9(GB)
それ以外は16(JB)
皆高いのな
androidエミュレータが起動しないんですけど原因として何が考えられますか?
信心
気が短い
>>562 起動していないように見えて
実は起動しているよ。
プロセスにsvchost.exeってのがあるでしょ?
それだよ。
>>567 だから動いてんだろ。
ここはプログラミングスレだ。
もう来るな。
起動しない
プロセスが立ち上がらないのか?
ウィンドウが表示されないのか?
立ち上がっても強制終了するのか?
どの画面まで表示されているのか?
期待値はどうで、現在値はどうなのか?
起動しない
>>568 > 555 名前:デフォルトの名無しさん[sage] 投稿日:2014/05/04(日) 15:41:48.42 ID:oaV+dHwq [2/5]
> 無視するか茶化すかで対応すれば良いと思うの。
そもそも、androidスマホがなにか持ってるのか?
ここで聞いて良いのかな?
webページから
<a href="intent://test/hogehoge#Intent;scheme=view;package=com.test.hogehoge;end">test</a>
を叩かせてアプリの起動かインストールをさせたい。
未インストールの場合、Google playが起動するのですが、
詳細画面の手前の一覧画面(?)までしか開けません。
詳細画面を開きたい場合はどうすれば良いのでしょうか?
何か開くためのschemeとかあるのでしょうか?
>>573 確実な方法は、まずURLスキームをajaxとかで叩く。応答があればアプリはインスコ済み。
なければ、GoogleのストアURLを開く。
>>544 使ったことないので間違っているかもしれないけど、
listFiles()メソッドは指定したパスがディレクトリだった場合に
そのディレクトリに含まれるファイルなどの一覧を取得するメソッドらしいので
ファイル名を指定した場合にnullが返ってくるのは正常だと思う(たぶん)
File directory = new File("c:\\");
File[] filelist = directory.listFiles();
上記のような使い方をした場合にCドライブ(フォルダ)以下の一覧を取得するものなので
あなたがやりたいこととは違うのではないかと思います。
Fileneme[0]に入っているファイル名(文字列)や
Filesを使って何をしようとしているのか書いてくれれば
回答してくれる人がいると思います。
>>546 エスパーするとActivityを継承したクラス以外のところで
getSystemServiceを使用したい、ということだと予想します。
そのクラスのコンストラクタにActivityからContextを引数で渡す、
もしくは、getApplicationContext()でアプリのContextを取得して
利用するといったところが、一般的なところだと思います。
Contextについて検索して勉強することと、
「android activity 以外 context」 といったキーワードで検索することを
お勧めします。
>>549 エミュレータにアプリがインストールできていない状態だと思われます。
該当のエラーの前後に説明が記載されていると思うので
大抵そのワードで検索すれば、解決方法が載っているページが見つかります。
>>553 その記号はAndroidのプログラミング部分で重要なところですか?
とにかく、その説明では回答しようがないので
そのYouTubeのURLと何秒のところの説明で躓いているといった
ことを書いた方がいいと思います。
>>557 14
>>562 >>567 他の方が回答しているように起動しています。
が、Androidのエミュレータは起動がすごく遅いことで有名です。
マシンスペックが少々貧弱だと、へーきで数分その画面のままで
スリープ画面が拝めません。
気長に待つか、「android エミュレータ 高速化」で検索すると幸せになれるかもです。
(CPUが対応していないと高速化はできない)
>>573 ざっと調べた限り、簡単に実装する方法はなさそう。
575さんの提案した方法のようにURLをクリックした時の応答を
何かしらの手段で確認してから、アプリの起動か詳細ページへの直接リンクで
飛ばすしかないのではないでしょうか…
個人的には、その手間をかけてもインストール数や操作性の
向上は大して見込めないと思うので、現状の一覧画面までの
画面遷移でも十分ではないかと思ったりします。
(?Chrome以外のブラウザでもちゃんと動くか検証めんどいし)
地震で目が覚めたから沢山レスしてやったぜ(`・ω・´)
もっかい寝よ…
地震怖いよまじ勘弁
>>574 >>575 >>580 ありがとうございます
これ以上は結構面倒そうですね
試験中なのでアプリをアルファ版までしか公開していないのです。
アルファ版はgoogle playの詳細ページは開けるけど、一覧画面(検索結果)には表示されないのです・・・
お前らすまんな
うちのオカンがすってんころりんした振動だったんだ…
>>585 少しは自分でぐぐろうぜ
まずはファイル拡張子表示する設定の仕方覚えてから出直してくれ
>>586 その現象はしらないがプログラムの世界で昔から画像サイズは偶数にするという決まりがある。
安全な偶数。何が起こるかわからない奇数って感じに。
なので今後もトラぶりたくなかったらとりあえず奇数サイズは使わないほうがいい。
まったく関係ない話だったらすまんね。
>>587 書き方が悪かったようで申し訳ないです
719という数字はあくまでテスト結果であって、最初は(800, 0, 900, 100)ぐらいで試してます
大きな数字にするとさっぱり表示されないのでもしかして限界があるのかな、と探した結果がこれでした
とりあえず応急的にいったんリサイズしたBitmap作ってx,yの指定だけでdrawBitmapしてみようかなと思います
>>585 artifactsが何をするものなのか判るのに
下4つが判らないとは不思議な人だな。
590 :
デフォルトの名無しさん:2014/05/05(月) 19:36:44.71 ID:RUQ3VIrC
GoogleドライブのAPIについて質問
一度MacにEclipse入れて、Googleドライブにテキストファイル保存するプログラム組んで成功したんだけど
じゃあWindowsの方でもできるだろう、と思って
Macで作ったときと同じような手順でプログラム組んだら、こんなエラーでて詰んだ
java.io.IOException: NetworkError
at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
↓ここでAuth認証用の設定とか作るんだと思うんだけど、何回やっても通らないし、もう頭痛が痛い
https://code.google.com/apis/console/ 休み中Mac触れないので比較もできないし
誰か同じような詰み方した人いない?
ごめん
>>590は完全に俺の勘違いだった
単にAndroidのWifi切ってるだけだった・・・
普段Android触ってないせいか全くチェックしてなかった
俺のGWがなくなった しにたい
>>583 同じような状況になったことが無いので分かりませんが
eclipseなどで新規にプロジェクトを作成したまっさらな状態でも
同様の現象が発生するのか確認してみてはいかがでしょうか?
初期状態で問題が無かった場合には
エラーがでない範囲で少しずつプログラムの記述を追加していって
原因となる箇所を探ることをお勧めします。
エミュレーターやSDKのバージョンなど
あなたの環境に依存している可能性もあるので
環境面を最新の状態にすることも考えたほうがいいかもしれない。
>>585 587さんの言う通り検索で分かる範囲の内容です。
検索するべき内容(この場合、ファイル名)が分かっている場合には
自身で調べる癖をつけていないと、この先大変ですよ。
ざっくり言うと
1.eclipse.exe→Eclipseを起動するための実行ファイル
2.eclipse.exe -clean.cmd→Eclipseの挙動がおかしくなった場合に試す際に使用する
クリーンコマンド、キャッシュを削除して起動してくれる
3.eclipse.ini→設定ファイル、メモリの使用量などを変更するときにいじる、けど初心者にはいじることはお勧めできない
4.eclipsec.exe→知らないので検索してみてください
>>586 >>588 既に他の方法を試されるようですが、
もし解決を望むなら本当にリンク先と同様の現象か分からないので
あなたが記載したCanvas.DrawBitmap前後のソースと
端末の情報を記載した方がいいと思います。
>>590 >>591 どんまい!
ttp://visible-true.blogspot.jp/2010/12/listview.html ここを参考にテストしてるのですが、サンプルの通りにすると、きちんと動いたので、
次に、「リストに足される要素を1秒おきに1つづつ追加する」というのを試したら、
実行中にリストをタップしたらエラーになりました。
onCreateで、呼び出し
for()で最大要素数までカウントしながら、
要素を1つaddして、
Threadを呼び出した中でリストを再描画
1秒sleepする
という感じです。
リストを全部表示した後なら、エラーは出ないのですが、
リストを表示中のときに、リストをタップしたりするとエラーになります。
for()でループさせるのが、まずいのかな?という気がするのですが、そうなのでしょうか?
エラーログは見たの?UIスレッド関係じゃないの?
private final static String[] BASE_DATA = { "A"};
onCreate()で、
Thread th = new Thread1();
th.start();
private class Thread1 extends Thread {
@Override
public void run(){
for(int i=0;i<5;i++){
addListData();
handler.post(new Runnable(){
@Override
public void run() {
getListView().invalidateViews();
}
});
try{Thread.sleep(1000);
}catch(InterruptedException e){}
}
}
}
1秒おきに、A0,A1,A2,A3と、リストに表示されますが、
リストに表示されてる途中で、リストをタップすると、
エラーになることがあります。
エラーログには、UIなんたらと出てますが、処理的に足りないところとかありますか?
使い慣れてから出直してください
>>598 エラーログの重要なところをググれば答え見つかるんじゃね
重要なのは、今動かないのがどうしてかより、
エラーログの見方を身につけることだと思う
>>595 根本的な問題は、これ
>>「リストに足される要素を1秒おきに1つづつ追加する」
こんな事は現実にはやらない
信号で停車する度にシフトの位置をD−Pにわざわざ切り替えるようなもの
その度にバックランプが点灯するので後ろの車が驚く
末端的な問題は...勉強なのだから自分で探す事だ
このスレの過去スレにさえ関係内容が何回も既出してる
塾や進研ゼミやZ会や代ゼミ東進を
どれだけやっても伸びない奴の特徴
・先生の話を聞かない
(エラーログを見ない)
・先生の話を無視する1
(エラーログを見てもそこから何かを得ようとしない)
・先生の話を無視する2
(解決への道筋を何故か無視して別の解決手段を取ろうとする)
示されている必要な情報をわざわざ無視するというのは、昔から染み着いているものだからもう直しようが無いよね。社会でも会社でも苦しむ事になるだろうから同情してあげようよ。
うんち
答えを聞きにきたのに、答えがわからないからって、
質問者に逆ギレするのはよくないよね。
「仕様だから」と言った方がスマートだよ。
>>605 じゃぁ アンタが教えてあげればいいと思うけど?
「仕様がないなぁ」と答え出すのがお前ら
>>604 あれが分からないの?
俺って読解力ある方だったのか。
親や教師、友人達に感謝しなくちゃ。
たとえがヘタだって言ってるんだよ
そもそも「例え」ではないだろ。
その誤解が理解を邪魔してるんだと思うよ。
ちなみに
>>605は質問者本人だぞ。
こんな頓珍漢な事を書いちゃう奴なんだから
同情してあげようってのも頷ける。
>>602 この例え話が、何故、質問者が質問した事への教示になるのかが理解出来ないと言う事でございまする
>>・先生の話を聞かない
>>・先生の話を無視する1
>>・先生の話を無視する2
●「イミフ」とでも言わないとわかってくれないのかなぁ
流れが逸れてるところですが質問です
バッテリーの使用量には数段階あってディープスリープというのがあるらしいんですが
ウィジェットはだいたい30分おきに何らかのプログラム動作をしますよね
これがディープスリープに入る妨げになるのではないでしょうか
つまりウィジェットでバッテリー消費が増える要因になりそうですが
これを回避する手段とかはあるんでしょうか?
>>605 親切心でもう一度言ってあげるけど
「使い慣れてから出直してください」
>>612 えーと、うん。もういいや。
俺には手に負えない。ごめん。
>>612 例え?教示??
お前、一人で何言ってんだ?
(会社員かは分からんが)打ち合わせでお前が発言すると、場が停止することない?
ま、おれが普通未満の人に理解しにくい事を書いてしまったのがそもそもの原因だから、素直に謝ります。すみません。
>>614 質問者は、そのような抽象的な答えは求めておりません。
コミュ障害ですか?
エラーログはれよw
>>618 最終警告で最後にもう一度言ってあげるけど
「 使 い 慣 れ て か ら 出 直 し て く だ さ い 」
これでも理解できないようでしたらお近くの診療所へコミュニケーション障害カウンセリングを受けに受診してみてください。
>>620 for文を使ったらキューが溜まるからダメだとか、
そういう具体性の伴った回答を質問者は求めているわけです。
貴方こそ、知識が無いのに知ったかぶろうとしてもダメですよ。
こちらは初心者といえども、相手がどの程度のレベルの人かくらいは見抜けますからね。
うわっ
原因がわからないからログを貼れって言ってるのに貼らずに具体的な回答出来ないだろ
だーーー、しかたねえなぁ、、、
「使い慣れてから出直してください」は大人向け(対象年齢大学生以上)用に用意した回答なんだよ
大人ならこれの意味を汲み取れる。
汲み取れなかったキミは残念ながら高校生以下と判断させてもらう。
(とうとうこのスレにもリアル小中高プログラマーが混ざり始めたか・・・・)
一応大人のガキは更生困難なので相手にしないが
リアルガキは更生の見込みはあるから、これをきっかけに教育してやろう。
スレ汚しになるけど、もともとまったり進行だし許せよお前ら?
>>621 >for文を使ったらキューが溜まるからダメだとか、
>そういう具体性の伴った回答を質問者は求めているわけです。
実にごもっとも。同じように回答者は具体性の伴った質問を求めているわけだ。
キミの質問である「
>>595 >>597-598」これは残念ながら具体性を伴っていない。
キミが批判している俺の回答「
>>599」とキミの質問は同じだ。
これを皮肉って俺は
>>599をキミへの回答として捧げたわけだ。
俺の回答でイラつくキミと同じように、キミの質問は回答者をイラつかせている事を知ってもらうために。
>貴方こそ、知識が無いのに知ったかぶろうとしてもダメですよ。
>こちらは初心者といえども、相手がどの程度のレベルの人かくらいは見抜けますからね。
こういう事言うと全員の回答者から見放されるって気付いてないでしょう?
これに気付けてない時点でまったく見抜けていないよ。
何もね。
仮にキミが俺より優秀だったと仮定して話そう。
自称優秀な質問者(意味不明だがw)のキミは何故以下の回答を試してないのかな?
>>596 >>600 >>601 これら「具体的な有用な回答」を汲み取れていないか、理解できてない証といえないかい?
初心者が使い慣れる前に止まってるから質問するんだろ
自分が初心者だった頃を思いだせよ
答えたくないならスルーしろよ、大人なら
エラーログエラーログって、こちらは、元ソースを全部提示してるのだから、
自分のeclipseに貼り付けて実験してみればいいじゃない。
正しい対処はどうなんだろね
フラグでも立てて追加中はオンクリックをスキップすれば
>>626 おっとここにもいたw
何が悲しくてクソコードを自分のPCにいれる?
>>625 おいおいまた汲み取れない新たな初心者かい。
まず初心者の基本な「でかい態度は絶対とらないことだ」
子供向けにわかりやすく説明してやるとな教習所がわりやすい。
ここ「2chスレ」は「公道」と思っていい
「教習学科」を受けず、また何処かの車パクって無面で運転すると事故るよな。
質問が失敗し反撃に会うのはまさに「事故」だ
「教え方が悪い」と教官や教師に反抗するのも「事故」だ
知らないのなら上からのやり方に腹がたっても従うしかない
なぜなら自分のほうが弱者で弱い立場なのだから。
ここをわきまえず対等に渡ろうとするからたかが掲示板ですら事故るのだ。
それが嫌なら我流でのし上がれ、強くなれという話でしかない
実に的確な回答だろ?→「使い慣れてから出直してください」
この言葉には
「キミはもっと参考サイトを見て学習して吸収するべきだ。何故なら回答も理解できないだろうし質問の仕方も悪い」
「そんなキミが質問スレ(公道)に出てくると死亡事故で成長できなくなる恐れがある(人に頼り自分で何も出来ない子に成長する)」
「だから質問スレ(公道)はキミにはまだ早そうだよ。出直してね」
という意味も含まれている。
どうだい。実に的確な回答だろ?→「使い慣れてから出直してください」
初心者の頃を思い出せというならなお更誰にも質問なんかしてないぞ。
必死に自分ひとりでググって学習したもんだ。
2chは危険なアングラサイトと言われていた時代なんでね。
あと勘違いしないでほしいんだが、ここは専門学校でも塾でもない。
自分ではじめたことは基本自分でなんとかするよう心がけてやってもらいたいものだ。初心者は特に。
>>630 ほんと悪いけど、あなたの知能レベルも、俺とかわらんと思うよ。
明快な答えや、エラーの原因が思い当たるのならば、
自分の優位性をほのめかすために、
一言二言、具体性のあるヒントやキーワードを口走るものだけど、
あなたの長文には一切無いものね。
黙れ四の五の言わずに俺の書いた対処法試せそれまで書き込むな
>>632 >>「リストに足される要素を1秒おきに1つづつ追加する」
これをやめればいいだけ 無意味だから
>>621 続き。
以上を踏まえた上で正しい質問の仕方をお前に教えてやろう。ありがたく受け取れよ反抗期の青少年。
--------正しい質問の仕方テンプレート---------
[ 現在起きてる事の具体的な説明 ]
正しい例:ImageViewに画像をロードし表示しようとしたら○○というエラーが表示されて困っている。
ダメな例:ImageViewに画像をロードし表示しようとしたらエラーになり困っている。
[ エラーが発生するまでの段階を面倒がらずに詳しく事細かに説明 ]
例:ImageViewに読み込む画像は1920x1080のJpeg画像で、画像容量は4MBです。
drawable-nodpiにimage00.jpgとして保存してあります。
ImageView.setImageResource( R.drawable.image00 );のようにセットしビルドは通ります。
アプリが実行されると「○○というエラーが」出る感じです。
※質問者の中にはあなたと同じエラー状態を作る為にこの情報をもとに同じ状態を再現しようとしてくれる人がいます。
[ 画面に表示されてる貴重なエラー情報を省略せずにそのまま書く ]
例:Logcatには○○と表示されています。
※Logcatがわからない場合は「Logcatというのは使ったことがありません」などを書く
[ 実際に試した事 ]
例:用意する画像容量を4MBから2MBに変えてみたらうまくいきました。
他には○○というサイトの○○を試したけど○○というエラーが表示され出来ませんでした。
[ どうしたいのか?(理想な動作結果)を書く ]
例:アプリが実行しても「○○」というエラーが表示されず画像が表示されてほしいです。
画像はアプリ画面の全体に表示される事になっています。
うんまあ実験するくらいはいいんじゃないの
>>634 無意味じゃないよ。
そういう挙動を調べるだけで、何か新しいアプリやゲームのヒントになるし。
「1秒おきにリストに要素が追加されていくコードを書きなさい」という課題が出されたら、
その課題はおかしいとか文句言うの?
それ以前に、慣れた人なら、こういうコードを書けばいい、こういうコードを書いたらダメだな、と、
瞬時に閃くものだと思うけど。
getListView()で取得してるListViewがわからないのに貼って動かして再現できるわけ無いだろ
>>621 続き
[ 開発環境、SDK、実行環境について具体的に情報を書く ]
例:
OS:Windows7 Home Edition 64bit
CPU:Core i 7 3.0GHz
メモリー: 4GB
開発環境: Eclipse Ver3.8.2、AndroidSDK 17
アプリのターゲットSDKバージョン: 17
実行環境: 実機(Nexsus7 Android4.1)
---------------------------------------
以上。
少なくともこれくらいは実践してから文句を言え。
人に質問する時は「最低限自分で行うべき義務」を行った上で
礼儀と具体的に相手に伝えやすいよう努力する必要がある。
他には回答があるのに自分には思い通り回答が得られない場合は
自分にも責任があるようだと謙虚に考え改善することが向上するための近道だ。
精進せよ。
これが俺から若いお前への精一杯の回答だ。
>>638 >>595に元ソースを貼ってますので。
まさか、こんなに情報を揃えてるのに、
まだ質問者の情報が足りないなどと言わないでしょうね?
>>637 当然「そんなシチュエーション設定はおかしい」て文句言うよ
>>637 心配しなくてもそんな課題を出すようなのはいない(笑えもしない)
>>637、
>>640 プログラムとは関係ないが今後のキミを心配して
「人との接し方」についても助言しといてやろう。(慈悲深いな〜俺)
ここではお前は質問者だ。
このスレで一番「私が底辺にいる」という事を忘れるんじゃないぞ。
忘れているのならキミはもう誰からも回答は得られないでしょう。
自分でわからない事を人にお願いしてる時点で、自分の周りにいる人は全員お前より立場が上の目上の存在だ。
自分のゲーム作りのヒントがほしければ質問スレに書き込むんじゃない。
ここはキミの実験の場ではない。
自分の頭の中でやってわからないことは自分で調べて探求しなさい。
そして慣れた人なら瞬時に閃く事を瞬時に閃けないキミが大きな態度で質問を仰ぐその行動全てが
子供がやることという自覚を持ってくださいな。
質問スレで人から上手にヒントをもらう文章もかけないキミは
このままではいつまでたっても「瞬時に閃く事ができる人」にはなれないです
エフェクトではアリじゃねゲームとかで店に入ったらアイテムが
一度に表示されるんじゃなくてみたいな1秒一個じゃ遅いが
>>640 ええ、情報が足りないんですよ致命的に。
それに気付けてないキミも足りないんだよ…。
その結果が今なんだよ…ええ、本当に。あとは冷静になって考えてみておくれ。
クイズ?addListViewをrunnable中に突っ込むとかは駄目なの!?
あら盛り上がってたら例のプログラム書けない煽るだけの人登場か
荒れているなー…
ここで質問する大半の人が適切な質問の仕方ができない初心者だから、
それが嫌ならスルーするか解決に導くため煽らず誘導する人だけが書き込めばいいんじゃないかと思うよ。
>>635と
>>639で書かれたテンプレートの通りに質問してくれるのが理想だろうけど、
一見さんに、そこまで求めるのは正直酷だと思うので単純化したテンプレートを用意しました。
できれば、次スレまでに皆で校正してテンプレートとして
>>2に記載して欲しいです。
----------ここからコピペ----------
【質問】
あなたが確認している現象の記載、
どのような処理を希望をしているか、
このような状況ではどのようになるのか、等
できるだけ具体的に記載してください。
【コード】
エラーが発生している前後の箇所、
やりたいと思っている処理でうまくいかない箇所 、など
質問に関連する記述をコピペしてください。
【エラー】
エラーがある場合には、エラー全文
もしくはCaused by〜から始まるException(エラー)文を
コピペしてください。
【検索結果】
解決するためにあなたが検索したキーワードを記載してください。
また、検索したにも関わらず
なぜ解決に至っていないかを記載してください。
(質問内容によっては具体的な解決策ではなく
必要な検索キーワードが提示される場合があります)
----------ここまでコピペ----------
■エラーのコピペの仕方
1.LogCatのビューでエラーが表示されている行をクリックします。
2.複数行エラーをコピペする必要がある場合、
Shift+↑↓キーで選択範囲を広げることができます。
3.右上に表示されているフロッピーディスクのアイコンを押下すると
log.txtという形式で保存できるのでデスクトップなど任意の場所に保存します。
4.log.txtを開いて内容をコピーして上記テンプレートの【エラー】の箇所に貼り付けてください。
※質問内容によっては参考にしたサイトのURL、開発環境、端末情報、
記載した箇所以外のコードの情報を回答者たちから質問される場合があるので
必要に応じて適宜情報を開示していってください。
>>648 やってみます。
エラーの起きる頻度にばらつきがあるので、エラーが出ないときは全然出ないし、
出るときは頻繁に出るので困ります。
エラーログにしても、いつものUIなんちゃらエラーの定型文なんで、
そこから原因がわかる人がいたら尊敬しますよ。
それその訳わかんないエラーを貼ればここの偉い人が教えてくれんのよ
>>653 UIなんたらのエラーがでてくるのは
大体UIスレッド以外でUI関係をいじってる場合だと思う。
>>653 Androidのバージョンが2.xだったりする?
>>653 >>654 煽られて頑なになるのもわかりますが、
エラーの内容が正確にわかれば原因と思われる箇所の特定(もしくは絞込み)はできますよ。
(解決方法を思いつくかはプログラマの錬度によりますが)
Exceptionの正式な名称がわかればエラーが発生した原因がわかりますし、
Caused byから始まる文の末尾にはエラーが発生したクラス、
そのブロック内にエラーが発生した行数が記載されているので回答者達の参考になります。
例えば「ぬるぽ」でエラーが発生した場合などLogcatを閲覧すればすぐに、
NullPointerExceptionというエラー名、
Caused byをみて発生しているクラス名や行数が特定できます。
エラーの内容が異なっていても特定方法と解決方法は大して変わりません。
>>653 はい。
>>648 ご指摘のようにしたら、エラーが出なくなったような感じはします。
修正前のエラーログは下記
05-06 14:04:47.517: W/dalvikvm(2359): threadid=1: thread exiting with uncaught exception (group=0x40015560)
05-06 14:04:47.526: E/AndroidRuntime(2359): FATAL EXCEPTION: main
05-06 14:04:47.526: E/AndroidRuntime(2359): java.lang.IllegalStateException: The content of the adapter has changed
but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread,
but only from the UI thread. [in ListView(2131230720, class android.widget.ListView) with Adapter(class android.widget.HeaderViewListAdapter)]
この僕ちゃんへの回答は出てる
僕ちゃんが気がついて無いだけ
05-06 14:04:47.526: E/AndroidRuntime(2359): at android.widget.ListView.layoutChildren(ListView.java:1510)
05-06 14:04:47.526: E/AndroidRuntime(2359): at android.widget.AbsListView$CheckForTap.run(AbsListView.java:2000)
05-06 14:04:47.526: E/AndroidRuntime(2359): at android.os.Handler.handleCallback(Handler.java:587)
05-06 14:04:47.526: E/AndroidRuntime(2359): at android.os.Handler.dispatchMessage(Handler.java:92)
05-06 14:04:47.526: E/AndroidRuntime(2359): at android.os.Looper.loop(Looper.java:123)
05-06 14:04:47.526: E/AndroidRuntime(2359): at android.app.ActivityThread.main(ActivityThread.java:3683)
05-06 14:04:47.526: E/AndroidRuntime(2359): at java.lang.reflect.Method.invokeNative(Native Method)
05-06 14:04:47.526: E/AndroidRuntime(2359): at java.lang.reflect.Method.invoke(Method.java:507)
05-06 14:04:47.526: E/AndroidRuntime(2359): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-06 14:04:47.526: E/AndroidRuntime(2359): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-06 14:04:47.526: E/AndroidRuntime(2359): at dalvik.system.NativeStart.main(Native Method)
みんなやさしいねぇ…
俺は若い奴にほど答えは教えず自分で思考させるタイプ
今回答え教えてもらってもプリントの回答丸写し状態で根底を理解しないままになりそうだし
ListView、Sleep、スレッド、UIが絡んでる問題は根底を理解しないと同じこと繰り返すんじゃないの
>>662 人に教えるほどの知識が無いなら黙っていればいいじゃない?
あらあら
解決できたつもりでいるんだ
>>664 あなたは、エラーログからどんな原因が読み取れましたか?
聞かせていただきたいですなあ。
>>659 >>661 私もまだListViewとAdapterまわりを踏み込んで勉強していないので
具体的な説明や解決方法を提示できないのですが
「but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread,」
で検索したら以下のようなサイトなどがヒットしましたが参考にならないでしょうか?
http://blog.mumei-himazin.info/?p=365
実にわかりすい子供だよなほんと。何も学習できてないんじゃん。
例えば俺が下のように痛いところ突く事も予期できないんだろうし
>>663 人に教えてもらわないと一人で何も解決できないなら向いてないからプログラムやめたら?
年齢的にも知識量的にも明らかに相手を間違えてんのになぁ…可愛いやっちゃな
いじるのが癖になりそうだw
05-06 14:04:47.526: E/AndroidRuntime(2359): java.lang.IllegalStateException: The content of the adapter has changed
スタックトレースの1行目に原因書いてあるじゃん
AdapterとListViewの同期が取れてませんよって
これと自分のソース見て原因分からないんだったら
センスないから諦めた方が良い
おあとがよろしいようで チャンチャン
スタックトレースをスタートレックと読み違えてはMrスポックのモノマネをして
現場を氷河期にしていたK先輩、私は今でもあなたを支持します。
>>666 ありがとうございます。
なるほど、AdapterとListViewの同期が取れてないときにエラーが出るわけですね?
そうすると、
>>648の方法も、正解をいただいたわけでありがとうございます。
>>669 そのような偉そうな事を言えるのなら、
最初のコードから指摘できたはずですよね?
後出しじゃんけんはみっともないよ。
673 :
デフォルトの名無しさん:2014/05/06(火) 15:05:16.94 ID:5ztZHmoZ
エラーメッセージはそのままグーグルに貼り付けて検索してみるといいのだよな
よっぽど特殊な現象じゃないかぎりだいたい原因がみつかる
IDEはもうエラーがでたらそのままブラウザにとばして検索結果表示させる機能を用意してもいいんじゃないか
今いいでしょうか・・・
プログラムはまったくわからない一般androidユーザーですが、どこに聞いていいものやらでここにたどり着きました。
タブレット(SHT21)でゲームをしようとパッド(JC-U2410TBK)を買ってきて接続したんですが、非対応でした。
ぐぐると
http://9oe.me/distro/?p=3814で何かを書き足したら使えたような事を書いてるんですが 何にも知らない俺でも手順さえわかれば出来るような事でしたら、どなたか教えていただけないでしょうか
お願いしますm(_ _)m
教習所いかなきゃいけないならあきらめます
>>673 1年半前に欲しかったんだよなぁ
今はjavaで問題ないので買うかどうかは微妙だなぁ
正解は最初からずっと出てるぞ。昨日から出てる。
次は「どうやったら同期がとれますか?」の質問になるんじゃないだろうな
>>675 スレ違い、ですが誘導先もわからないので
Yahoo知恵袋あたりで質問したらいいのではないでしょうか。
ただ、リンク先の方法やAndroidに対応していないゲームパッドを
接続する方法もちょっと難易度が高いように思えます。
ここは素直にAndroidに対応しているゲームパッドを
購入前にちゃんと調べて入手した方がいいのではないでしょうか。
>>677 Thread 〜Runnableで囲めば、別スレッドからUIに描画できるものと無条件で思ってましたからね。
UIなんちゃらのエラーも、同期が取れてないのは当たり前と考えてたので、
無意味なメッセージと思ってましたが、
ListViewは、追加されたリスト数と描画されるリスト数の同期が必要だということがわかっただけ収穫ですよ。
さて、「どうやったら同期がとれますか?」という方法ですが、
>>648の方法が有効だと思えばそうしますし、またエラーが出るようなら、対処を考えます。
いまのところ、100個リストしてもエラーは出てないということをご報告申し上げます。
なんだ、暇つぶしに変や人のフリして遊んでいたのに、本物が出現していたのか。
さっさとNGIDに登録しておけば良いのに。
なぜわざわざ相手すんのか。
まー俺自信もNGIDに登録されてるんだろうけどな。
質問者によって天使にも悪魔にも変化するのよね
飴と鞭ってやつだぜ。ぐへへへへへ
君たちの中で、何人が、
「AdapterとListViewのリスト数の同期が必要」と、明確に理解してたの?
俺が質問をぶつけなかったら、曖昧なままだったろ?
実際、「Adapter ListView 同期 エラー」でググっても、
それらしい解説をしたブログは引っかからないしな。
>>681 その方法だときっちり正確に1秒ごととかは難しいかもね。postはUIスレッドに仕事を渡してるだけ。UIスレッドは渡された仕事を順次こなしてるだけ。UIスレッドが忙しかったら待たされる。気にならなければいいけど
>>686 だからよ。お前はよ。人との付き合い方をよ。学べとよ。
>>643でよ。助言してるだろうYO。YO。
答えがもらえないのは皆が知らないからとか思うのも自由だが
そうやって見下しまくる奴には知ってても教えてやりたくない人や
俺のように自分で学習しろと思ってる人もいるんだYO
俺を例にするなら
>>662で「UIが絡んでる問題は根底を理解しないと同じこと繰り返すんじゃないの」と言ってるでしょーに
教習所いってればYO、UIスレの根底理解しててYO、根本的にそういうエラー起こさないか
起こしても自らすぐ「あ、これ原因ね」と解決してブログのネタにもならんし質問スレにも書くような内容じゃないんだYO
そもそもAdapterとかスレッドは初心者がいきなり使うようなものじゃないYO
なんでも自分基準で考えちゃダメだYO、YO!
ちくしょう…ツンデレって可愛いな…つい弄りたくなってしまうじゃねえか…うずくぜ…くそ…w
またレス番が飛んでる…(´・ω・`)
自分用(自端末はAndroid4.1.2)にアプリを作っているのですが、
以下の事を実現できずに困っています。
●やりたいこと
自前のServiceが動いている間は、Navigation bar(BACKとかHOMEとかのソフトウェアボタン部分)の表示を薄くしたい
●今できていること
自前のActivityが起動している間に同じことを実現することはできています。
やり方は、適当なViewのインスタンスで
View#setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE)
を実行することで実現しています。
●できていないこと
Activityが終了していてもServiceが起動している間は
Navigation barの表示を薄くしたいのですが、
どのように記述したら良いのでしょうか。
service, navigation bar, setsystemuivisivisibility, sw buttons, software buttons, system_ui_flag_low_profile,
などのキーワードでググっていますが、解決方法が見つかっていません。
よろしくお願いします。
>>691 知らないけど、サービスってのは画面UIを占有しないのがActivityとの違いなんだから、画面UIをコントロールする権限はないと考えるのが自然では?
693 :
691:2014/05/06(火) 17:44:45.62 ID:VmRZg439
>>692 や、そう思うのですが解決方法あればなと思って質問しました。
ありがとうございます。
694 :
691:2014/05/06(火) 17:55:19.15 ID:TGC2THiM
>>693 おいこら、暇人。遊ぶな。
とはいっても言いたいことはまさにそれなんだが。
…目的がわからん。
>>692 というわけでありがとう。
>>691 自前アプリのUIではなく、システムのUIを操作できるのかは知らないのですが
Activity内で既に実現できているのなら同じ処理を
Service内でHandlerを使って操作することで実現できないでしょうか。
>>694 実際できるかはわからんが、ServiceからWindowManagerへ
LinearLayout当たりをAddViewして、そのViewにLowProfile設定をすれば
常にLowProfile設定を反映することができるかも。
お仕事にしてる人達って
1時間あたりの単価って幾らくらいなん?
>>686 だから...無意味な課題だって言ってるだろうが
>>686 バ〜カは〜死ななきゃぁ〜なぉらな〜い って講談でもいってるぞ(わらい)
オマエ良かったな、オマエはプログラマには向いていないって その課題が教えてくれたからなぁ
>>697 やとわれじゃないからわからんが 月100程度
毎日組んでるわけじゃないから...組んでる時の実時間だと...時間単価だと1〜2万位?
でも、企業内プログラマでも月300〜500ってのがいるからそれに比べればペィペィですわ
どなたか教えて下さい
Ex ファイル エクスプローラー のような
上部にボタンがあって、下部のフレイムレイアウトがあり
ボタン毎に、下部のフレイムレイアウト内のView
を、切り替える様な仕様のアプリを作ろうとしているんですが
Fragmentを使って作ろうと思ったのですが
FragmentのonCreateViewの第一引数と第二引数
に、何を入れたら良いのでしょうか?
二つともnewで空引数のコンストラクタを入れたら
良いのでしょうか?
それとも、Fragmentを、使わずとも他の良い方法
がありますか?
最新のAndroidSDKを入れて、Androidアプリを作ろうとすると
Fragmentありきで作る様な仕様になってるので
Fragmentを、使うようにしようとしているんですが
どなたかご教示願います。
>>701 何を入れたら良いかと言うより、そもそも
onCreateView(LayoutInflater, ViewGroup, Bundle)
と定義されてるので、自分で何かを入れるわけではなく、引き渡されてくるものなのだが
serviceからalarmManagerでタイマーをセットして
MainActivityからそのタイマーをキャンセルしたいのですが
同じPendingIntentにしてもキャンセルされません
contextも同じにしなければならないのでしょうか?
そうするとservice側にキャンセルメソッドを書いてMainActivityから
呼び出そうとしましたがstaticなのでうまくcontextが取れません
別クラスでセットしたserviceを別のクラスからキャンセルする場合
どうすればいいでしょうか?
>>701 具体的にやりたいことが明確なようですがフラグメントに慣れていないなら、
まずはフラグメントを使用しないで作成した方がいいと思います。
(onCreate内のフラグメント関連の内容を削除し、レイアウトのxmlを修正すればActivityのみで作成できるはず)
作ったことがないものや作り方がわからないものを、なれていないフラグメントで作成するのはハードルが高いように思えます。
2度手間のように思えるかもしれませんが、
Activity上で希望の仕様を作成できたらフラグメントに移植することを検討したらいいのではないでしょうか?
>>703 Activity側からServiceのタイマーをキャンセルする処理の部分のコードと
Service内のコードを記載してほしい。
ちなみにタイマーをキャンセルしてもサービスは終了しない形を想定しているのでしょうか?
>>704 別の場所で不具合があっただけで
無事サービスのキャンセルできました
contextは関係なくPendingIntentだけ同じであればいいようです
サーバーとやりとりするプログラムを作ってる
で、サーバーとデータをやりとりするメソッドを各アクティビティから利用したいん
だけどどういう風に実装したらいいかアドバイスください
サーバーとやりとりする機能をまとめたクラスをシリアライズしてintentで渡そうと思ったら無理だった。
現在知りたい情報 あるインスタンスを様々なアクティビティから利用するにはどうしたら良いか
現在起きている問題 シリアライズしたインスタンスをインテントで受け渡すとエラーが出る。どうやら基本的な型以外はインテントで渡すとエラーになるみたい。
java.lang.RuntimeException: Parcelable encountered IOException writing serializable ...というエラーがでる
実装の方法から見直そうか、というのが現状
>>700 >でも、企業内プログラマでも月300〜500ってのがいるからそれに比べればペィペィですわ
月300〜500万ってこと? すごいね。
Androidそのものを作ってるGoogleの中の人でもさすがにそこまではもらってなさそう。
>>707 クラスにまとめるまでの発想ができるなら、そのままimportして使えばいいのでは?
米政府、ロシア軍のウクライナ国境からの撤退を確認できず
ブラフwwwwwwwwwwwwwwwwww
ごばく
716 :
701:2014/05/08(木) 05:41:42.80 ID:jsRuHmS3
>>704 レスありがとうございました。
確かにFragmentに慣れて無いので
まずFragmentを、使わず作り上げようと
思います。
>>709 ふつうにserializableで受け渡しできるはずだけどなあ
メンバーにserializableじゃないやつが入ってるとかじゃない?
BluetoothのSPP通信プログラムをtechbooster等のページを見ながらやってるのですが
2台の端末で
tmp = btAdapter.listenUsingRfcommWithServiceRecord(NAME, MY_UUID);
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
最初のsocketを作成するとこまではうまくいくのですが
接続要求をするところで
socket = mmServerSocket.accept();
mmSocket.connect();
停止したままだったり実機のダイアログエラーになります。
どういった所が原因と考えられるでしょうか?
エラーログはこんな感じです。
05-07 21:17:23.646: E/BTL_CFG(11187): WARNING : [service.brcm.bt.INQ_FILTER_BDA] property_get failed (0)
05-07 21:17:23.656: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Adapter:PropertyChanged from /org/bluez/11226/hci0
05-07 21:17:23.666: E/BTUI_ERedirector(2032): [BTUI] onReceive()... android.bluetooth.adapter.action.DISCOVERY_STARTED
05-07 21:17:30.206: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Adapter:DeviceFound from /org/bluez/11226/hci0
05-07 21:17:30.226: E/BTUI_ERedirector(2032): [BTUI] onReceive()... android.bluetooth.device.action.FOUND name(A1_07) class(524) rssi(-41)
05-07 21:17:30.346: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Adapter:PropertyChanged from /org/bluez/11226/hci0
05-07 21:17:30.356: E/BTUI_ERedirector(2032): [BTUI] onReceive()... android.bluetooth.adapter.action.DISCOVERY_FINISHED
05-07 21:17:31.516: E/dun_service(1586): LG_DATA: Dun Reply Functions [DUN_STATE_IDLE --> DUN_STATE_IDLE][-1090827020]
05-07 21:17:35.566: E/BTLD(11187): ****************search UUID = 1101***********
05-07 21:17:36.876: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/11226/hci0/dev_00_90_A2_27_20_95
05-07 21:17:37.406: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/11226/hci0/dev_00_90_A2_27_20_95
05-07 21:17:37.426: E/BTUI_ERedirector(2032): [BTUI] onReceive()... ### ACTION_UUID ###
05-07 21:17:37.426: E/BTUI_CachedDevice(2032): [BTUI] ### onUuidChanged() : 5000 > 33904077
05-07 21:17:38.006: E/AndroidRuntime(11407): FATAL EXCEPTION: Thread-11
05-07 21:17:38.006: E/AndroidRuntime(11407): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
05-07 21:17:38.006: E/AndroidRuntime(11407): at android.view.ViewRoot.checkThread(ViewRoot.java:2802)
05-07 21:17:38.006: E/AndroidRuntime(11407): at android.view.ViewRoot.invalidateChild(ViewRoot.java:607)
05-07 21:17:38.006: E/AndroidRuntime(11407): at android.view.ViewRoot.invalidateChildInParent(ViewRoot.java:633)
05-07 21:17:38.006: E/AndroidRuntime(11407): at android.view.ViewGroup.invalidateChild(ViewGroup.java:2505)
05-07 21:17:38.006: E/AndroidRuntime(11407): at android.view.View.invalidate(View.java:5302)
05-07 21:17:38.006: E/AndroidRuntime(11407): at android.widget.TextView.checkForRelayout(TextView.java:5636)
05-07 21:17:38.006: E/AndroidRuntime(11407): at android.widget.TextView.setText(TextView.java:2803)
05-07 21:17:38.006: E/AndroidRuntime(11407): at android.widget.TextView.setText(TextView.java:2671)
05-07 21:17:38.006: E/AndroidRuntime(11407): at android.widget.TextView.setText(TextView.java:2646)
05-07 21:17:38.006: E/AndroidRuntime(11407): at com.android.internal.policy.impl.PhoneWindow.setTitle(PhoneWindow.java:260)
05-07 21:17:38.006: E/AndroidRuntime(11407): at android.app.Activity.onTitleChanged(Activity.java:3581)
05-07 21:17:38.006: E/AndroidRuntime(11407): at android.app.Activity.setTitle(Activity.java:3547)
05-07 21:17:38.006: E/AndroidRuntime(11407): at com.example.Bluetooth.MainActivity$ConnectThread.run(MainActivity.java:260)
05-07 21:17:41.166: E/BTL-IFS-WRAPPER(11187): tx_data: failed : Bad file number (-1)
05-07 21:17:42.496: E/BTUI_ERedirector(2032): [BTUI] onReceive()... ### ACTION_UUID ###
05-07 21:17:42.496: E/BTUI_CachedDevice(2032): [BTUI] ### onUuidChanged() : 5000 > 33909149
05-07 21:17:44.486: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/11226/hci0/dev_00_90_A2_27_20_95
CalledFromWrongThreadException
接続スレッドからActivityのsetTitle呼んでるからだろ。
>>718 エラーログからすると、uiスレッド以外からuiいじってエラー吐いてるみたい。
btのやりとりをスレッド作ってやっててそこでviewとかをいじってないかな?
ブログの情報も古くなってるのが増えてきたから
そのままコピペじゃ動かないのも多くなるだろうな
デバッグ情報表示にsetTitle使ってました。全部消したのですが
まだ状況に変化ないです。今のエラーログです。
05-08 12:03:23.960: E/BTL_CFG(15283): WARNING : [service.brcm.bt.INQ_FILTER_BDA] property_get failed (0)
05-08 12:03:23.970: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Adapter:PropertyChanged from /org/bluez/15298/hci0
05-08 12:03:29.990: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Adapter:DeviceFound from /org/bluez/15298/hci0
05-08 12:03:30.240: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Adapter:PropertyChanged from /org/bluez/15298/hci0
05-08 12:03:34.310: E/BTLD(15283): ****************search UUID = 1101***********
05-08 12:03:35.470: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/15298/hci0/dev_00_90_A2_27_20_95
05-08 12:03:35.770: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/15298/hci0/dev_00_90_A2_27_20_95
handlerのToastとToastも全て消してみました。メニューから操作させてるのに問題あるでしょうか?
05-08 12:14:02.040: E/jdwp(24990): Failed sending reply to debugger: Broken pipe
05-08 12:14:12.470: E/BTL_CFG(15283): WARNING : [service.brcm.bt.INQ_FILTER_BDA] property_get failed (0)
05-08 12:14:12.480: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Adapter:PropertyChanged from /org/bluez/15298/hci0
05-08 12:14:16.900: E/AndroidRuntime(24990): FATAL EXCEPTION: main
05-08 12:14:16.900: E/AndroidRuntime(24990): java.lang.NullPointerException
05-08 12:14:16.900: E/AndroidRuntime(24990): at com.example.Bluetooth.MainActivity$ConnectThread.<init>(MainActivity.java:237)
05-08 12:14:16.900: E/AndroidRuntime(24990): at com.example.Bluetooth.MainActivity.onOptionsItemSelected(MainActivity.java:165)
05-08 12:14:16.900: E/AndroidRuntime(24990): at android.app.Activity.onMenuItemSelected(Activity.java:2195)
05-08 12:14:16.900: E/AndroidRuntime(24990): at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:737)
05-08 12:14:16.900: E/AndroidRuntime(24990): at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143)
05-08 12:14:16.900: E/AndroidRuntime(24990): at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855)
05-08 12:14:16.900: E/AndroidRuntime(24990): at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:532)
05-08 12:14:16.900: E/AndroidRuntime(24990): at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122)
05-08 12:14:16.900: E/AndroidRuntime(24990): at android.view.View$PerformClick.run(View.java:8979)
05-08 12:14:16.900: E/AndroidRuntime(24990): at android.os.Handler.handleCallback(Handler.java:587)
05-08 12:14:16.900: E/AndroidRuntime(24990): at android.os.Handler.dispatchMessage(Handler.java:92)
05-08 12:14:16.900: E/AndroidRuntime(24990): at android.os.Looper.loop(Looper.java:123)
05-08 12:14:16.900: E/AndroidRuntime(24990): at android.app.ActivityThread.main(ActivityThread.java:4627)
05-08 12:14:16.900: E/AndroidRuntime(24990): at java.lang.reflect.Method.invokeNative(Native Method)
05-08 12:14:16.900: E/AndroidRuntime(24990): at java.lang.reflect.Method.invoke(Method.java:521)
05-08 12:14:16.900: E/AndroidRuntime(24990): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:870)
05-08 12:14:16.900: E/AndroidRuntime(24990): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
05-08 12:14:16.900: E/AndroidRuntime(24990): at dalvik.system.NativeStart.main(Native Method)
05-08 12:14:17.520: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Adapter:DeviceFound from /org/bluez/15298/hci0
05-08 12:14:25.310: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Adapter:PropertyChanged from /org/bluez/15298/hci0
05-08 12:14:25.330: E/dun_service(1586): LG_DATA: Dun Reply Functions [DUN_STATE_IDLE --> DUN_STATE_IDLE][-1090827020]
05-08 12:14:26.320: E/dun_service(1586): LG_DATA: Dun Reply Functions [DUN_STATE_IDLE --> DUN_STATE_IDLE][-1090827020]
1レスで入りきらないモノは
2ch以外に貼り付けてからリンクを貼ってね。
全てをメニュー操作からするようにしたら一応データ交換できました。アドバイスありがとです。まだエラーは残っていますが。
05-08 12:36:15.150: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/15298/hci0/dev_00_90_A2_27_20_95
05-08 12:36:33.920: E/BTL_CFG(15283): WARNING : [service.brcm.bt.INQ_FILTER_BDA] property_get failed (0)
05-08 12:36:33.920: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Adapter:PropertyChanged from /org/bluez/15298/hci0
05-08 12:36:38.030: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Adapter:DeviceFound from /org/bluez/15298/hci0
05-08 12:36:38.100: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Adapter:PropertyChanged from /org/bluez/15298/hci0
05-08 12:36:46.650: E/BTLD(15283): ****************search UUID = 1101***********
05-08 12:36:48.590: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/15298/hci0/dev_00_90_A2_27_20_95
05-08 12:36:48.960: E/BluetoothEventLoop.cpp(1414): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/15298/hci0/dev_00_90_A2_27_20_95
Androidというかjavaというかオブジェクト指向
についてなんですが
メソッドを、overrideした時の引数を使って
コード処理をする事が多数ありますが
自分としては、overrideしたメソッドは
同じシグネチャを持って実装処理が違う感じと
理解してたつもりだったんですが
overrideって、スーパークラスのメソッドにわたされる
引数の情報を使って処理するもんなのでしょうか?
abstractなメソッドなら、引数に情報は無いが
継承したクラスのインスタンスをスーパークラス
の型で生成した時、インスタンス自体は継承したクラス
のインスタンスで型は、スーパークラスなので
継承したクラスのoverrideしたabstractなメソッドを
利用する時、継承したabstractなメソッドを使い
その他のoverrideして無いメソッドは、スーパークラス
のメソッドを利用したりすると理解してるつもりですが
結局のところoverrideってどう理解すれば良いのでしょうか?
どなたかご教示願います。
長くてわかりにくいコードを書きそうな人だな
1ファイル1クラスに全部書いてそうだね。
なぜわざわざ回答が来なさそうな質問の仕方をするのだろう。
文章にもオブジェクト指向が必要ということか。
>>729 この1文だけですむじゃねーか
>結局のところoverrideってどう理解すれば良いのでしょうか?
派生元側の処理を上書きするのがoverride
例えば自動販売機クラスから派生させたジュース販売機クラスがあったとする
来週、5000円札が新しくなるから、紙幣認識ルーチンを新札対応にしなきゃいけない
紙幣認識は自動販売機クラス側。本当は自動販売機クラスを変更するのがいいけど既成品だからいじれない
しょうがないから、ジュース販売機クラス側で紙幣認識処理をoverideして新札対応にする
みたいなイメージ
>>729 継承した親メソッドに渡すことも渡さないのも自由
親メソッドに仕事させたきゃ渡すがよい
>>735 これだと
(1)ジュースの自動販売機の数だけ修正が必要になる
(2)新札対応はジュースの自動販売機だけじゃダメだから自動販売機クラスの修正が必要になる
と、突っ込んでみる
738 :
デフォルトの名無しさん:2014/05/09(金) 13:50:18.30 ID:0AelA5vg
eclipceで作ったAndroidアプリをiOSアプリでも動作する形に変換する手段てありますか?
>>737 >自動販売機クラスを変更するのがいいけど既成品だからいじれない
と言ってる
まあ例えが下手すぎるね
>>729 overrideの本質ってのは多態性の実現
superのメソッドを修正する用途が目的ではない
全然本質的でない突っ込み乙
742 :
729:2014/05/09(金) 15:03:35.71 ID:vJl9TGVD
ダラダラと変な質問の仕方してすいませんでした。
結局、自分が引っかかてるのは
overrideしたメソッドの引数に入ってる情報は
どこでどうやって入ってるのでしょうか?
overrideしていないメソッドの引数はどこでどうやって入ってるかわかりますか?
それと同じです。