Androidプログラミング質問スレ revision55
■ このスレッドは過去ログ倉庫に格納されています
よろしくお願いします。
1 public class MainActivity extends AppCompatActivity{
2 ・・・
3 Gview gView=new Gview();
4
5 public class Gview extends View{
6 public GameView(Context context){
7 super(context);
8 TextView textView =(TextView) findViewById(resID);
9 textView.setText("***"); }}}
とすると、コード上はエラーにならず、アプリケーションの起動エラーとなります。
9行目の textView.setText("***");を削除すると起動します。
エラーはNullpointerExceptionで、textViewがNullになってしまっています。
8,9行目のコードをMainActivity下の3行目あたりに移して実行すると、エラーは生じません
なぜ、Gviewクラスのコンストラクタ内ではNullエラーになるのでしょうか?
他のスレで教えていただいたのは、ViewクラスのfindViewByIdを呼んでいるとのこと。
GviewでsetTextする方法を教えてください。 >>30
どうしてもやりたいなら
8 TextView textView =(TextView) ((AppCompatActivity)context).findViewById(resID);
のような感じでいけると思うけど、おすすめしない MainActivityのfindViewByIdを明示的に呼ぶ LayoutInflater.from(context) みなさま、ありがとうございました。
お教えに従って進めてみます! そもそもpublicクラスを2つ書くのが無理じゃない?
内部クラスかな >>28
c#勢なんかがアプリ開発に手を出しやすくなると思う kotlin書きやすいしGoogleもやる気みたいだからこれからはkotlinで書いたほうがいいんじゃ?
公式のサンプルコードも最近はkotlin多いし Googleはやる気あるか?
Fuchsiaは対応言語にJavaもKotolinも無いし >>40
それはKotlin作ってるのがGoogleではないからでは?
Javaと同様にJetBrainsが後から対応させれば良かろう。 kotlinとscalaだとscalaのが圧倒的に検索ページ数多いな fuchsiaでosのアップデート権限をキャリアからとりもどすのが最大の目的(適当) いつも画面のレイアウト作るのが面倒なんだけど、
なんか良いツールとかありませんか? みなさん、XMLへのメモリの割り当てってどの程度してますか? >>30
Gviewのコンストラクタはそういうことをしてよい場所ではありません
TextViewとGviewはともにViewというお母さんを持つ姉妹です
あなたはその妹のおなかのなかで姉を誕生させようとしている変人です
あなたが理解すべきことは
コンストラクタの役割
publicクラスの作り方
View継承クラスは何をしたいときに作るものなのか
の3つです >>52
viewの入れ子なんて極々普通なことだよ。 ViewとViewクラスは違うのでViewクラスにViewとしての理念を適用してはならない、というなんかこうめんどくさいやつだな >>30
メンバー生成と同時に実体化するとonCreateの前に走ってエラーになったよ
中の人の準備の都合だろうね
onCreateのなかでgView=new Gview(); するとよい 独自viewクラスって最早アンチパターンじゃないか? >>53
「gViewのコンストラクタ」で他のview を生成しid参照することがおかしいということを質問者にざっくり理解してもらいたいだけ
質問者のgViewがViewGroupの継承クラスだとはとても思えないし 皆様ありがとうございます。
基本的な理解が足りてないようでとても勉強になります。
スッキリ読んだだけだと、そういうセンス的なところが身につかないのかな?
とにかく、とても参考にさせていただきました。 教えてください。
WebViewでsaveWebArchiveしたファイルを、loadurlで読み込むのですが、webページとして表示されず、テキスト表示なります。
うまく読み込む方法はないでしょうか?
##保存
webview.saveWebArchive("適当なURL")
##読み込み
webview.loadUrl("上記URL")
と
webview.loadDataWithBaseURL("上記URL", null, "application/x-webarchive-xml", "UTF-8", "上記URL")
## 確認したところ
teratail、スタックオーバーフロー、そのほか個人ブログなど
##開発環境
android 8.0(P10 lite) >>45
ページ数をどうやって数えた気分になっているのか。
Googleに表示された検索ヒットページ数は、完全な虚偽表示だぞ。
そのまま1000ページ目まで捲ればわかる。
大抵は14ページから20ページで終るから >>62
それ同じやつ表示しないようにしてるからでは?
最後まで行くと同じやつも出すリンク出てくるよ。 >>63
うん。表示されたページ数を信じる点がスレ住人にしては、素朴だなーって趣旨。 「確かめようがない情報は、嘘を書いても損失がない。従って何をいっても表示しても規制、誘導してもよい」
それがGoogleダークパタンの根っこにある彼等の共通理解。 だがページ数の欺瞞でわかるように、確かめる術をみえない所に散りばめてアリバイを作る。
ほら確認すれば、わかりますよニヤニヤ(無能w)
これがGoogleの本質。 scalaの方が古いんだからページ数多いの当然では? ググルの情報の真偽はともかく、一応ググルと違うデータベースを
使ってるbingで検索すると結構違う結果になるし、リンク切れを
起こしてるページもbingだと接続できないけどググルだとAdSenseの
ページが表示されたり怪しいことは怪しいっていうか、色々ググルで
情報が加工されてるような感じはあるね MainActivityで、findViewById(R.id.radioButton);
で取得したButtonビューの、◎ボタンの色を変えたいのですがコードを教えてください
あと、同じく丸いadioButtonを□にしたりできませんか? 1 RadioButton radioButton=findViewById(R.id.radioButton);
2 radioButton.setBackgroundColor(Colorrgb.(255,255,255));
で、バックグラウンドの色はセットできますが、
同じような書式というか丸ボタンの色を変えられるメソッド、
例えば、setButtonColor(…); のようのってないのでしょうか? Admob広告外し対策にはどのような方法がありますか?
何か有効な情報ページないですかね >>73
そもそも、そのアプリはそんなにダウンロードされてるの?
対策するのは、その後でも良いような? コンソールで使うJavaのプログラムを移植したいのですが
アプリ内で標準入出力を扱うにはどうすればいいですか? >>73
逆に広告を表示することで機能を追加するアプリならみたことある
広告が表示されてるかきちんと判定できればこういうやり方もありだなあと onAdLoaded() が呼ばれたからといって広告がきちんと表示されてるとはがぎらないってことなのだろうか?
改変したのはこれが呼ばれた上で広告が表示されないとか? スピナーを付ける時、デフォルトだと右側に▼が付くけど、
android:backgroundでレイアウト.xmlを指定すると消えてしまいます。
▼を表示させるか、レイアウトに▼(に近い形)を追加する方法は無いでしょうか? >>77
後付けで如何様にも変更される。
2017年のインタースティシャル広告をペナルティとか。 >>78
スピナーに入れる項目を"項目名"+" ▼"ってすれば出るよ >>80
それ全部の項目に▼が付くじゃないですか・・・ >>79
onAdLoaded()がだめということは結局広告がきちんと表示されてるかどうかを判別する方法はないってことなんですかね?
何か他の方法はないものだろうか… Timerの中でrunOnUiThreadを実行する時、
runOnUiThreadの中身が重いと、複数回実行してしまうことってありますか?
Timerを1秒毎にscheduleAtFixedRateで実行して、
runOnUiThreadの実行回数を見ていたら、
同じ秒数にrunOnUiThreadが2回発生している現象が見られました。
とりあえずrunOnUiThreadの中身を整理したところ直ったのですが、
原因が不明でスッキリしなくて。
漠然とした質問ですいませんが、よろしくお願いします。 >>84
----+----1----+----2----+----3
----------やれ------やれ------やれ
----------はい---------おわた
やれは定期
ハイカラおわたは処理時間
やれはキューされる。
よっておそけりゃ直ぐくるというなら、そういうことかと。 そもそも、runOnUiThreadで重い処理やっちゃダメだろ。 GDPRとConsent SDKについて質問です。
ttps://qiita.com/tokisuzume/items/de41f901ce772c7880c4
この解説ページ見てるのですが、選択フォーム表示でNOを選択すると
非パーソナライズ広告の表示に’同意のボタン’が出てきますよね。
EUの人がこちらを選んでAdMobの非パーソナライズ広告を表示すれば制裁の対象にならないのでしょうか? …@
いっそのことヨーロッパの人には全部非パーソナライズ広告にしてしまえばと思うのですが
こうするとなにかデメリットでもあるのでしょうか? …A
またプログラムには default: // 同意が得られなかったのでアプリを終了
がありますが、選択ボタンには非パーソナライズOKの選択ボタンはありますが他に
同意しない(拒否)の選択ボタンはありませんよね?
拒否で終了へ向かうにはどういう操作をすればいいことになっているのでしょうか?(それとも実際はないのか?) …B
@ABの3つについてお願いします。 >>88
ひとつだけ
.withAdFreeOption()を有効にすれば『同意しない』ボタンがでるよ
自分はこれで有料版へのリンクもしくは終了させてる >>90
出ました。ありがとうございます。
そのサイトのプログラムでは初回の選択後、2回目からは
onConsentFormClosed()で必ず case NON_PERSONALIZED: が呼ばれてしまいますが
1回目の選択を保存しておいてここでロードしてその内容で自分で設定しないといけない感じなんですかね 訂正 onConsentFormClosed()で→onConsentInfoUpdated()で
ボタン文変えるには
/app\build\intermediates\assets\フォルダ内のconsentform.htmlを変えればよい。
とあるけどこれも日本語の解説サイトほとんどないなあ。 サーバがUNKNOWNを返したらダイアログを表示するというロジックなので、サーバの応答次第では毎回ダイアログが表示されるということもありうる
これを避けるにはアプリ側でもフラグをもってダイアログ表示の制御をしたほうが良いと思う、サーバ側のバグはこちらではどうしようもないから 同意しないで終了するボタンつけた方がいいかな
さすがに欧州の人も同意フォームに見慣れてきて
バックボタンが効かなくてムキー☆1ってなることはないと思うんだが デフォルトの Pay for 〜 という名前のボタンじゃ押しにくいよね
これを Exit とかに変更する方法が書いてあるサイトないもんかなあ。 >>86-87
そうですよねー、ありがとうございますっ! レビューダイアログのライブラリってありますでしょうか
単にplay storeに飛ばすだけじゃなくて、
星を選択して結果を送れるようなものがいいです Android上で動くAIアプリ作りたいんだけど入門用におすすめのHPとか参考書あります?
目標としては音声認識して回答を返せるようなの作りたいです まずは人工無能という非人工知能技術を調べてみ
真っ先に人工知能を考えとるやろうけど、
おそらくやりたいことは人工無能で出来るはずや 音声認識は、OCRと似たところで応用の需要が途絶えるように見える。
複雑な入力を手間を掛けずに与える点で非合理。
人語を認識せず、予め技名みたいな言葉に動作を仕込むマクロみたいな使い方が主流になりそう。
「システムコマンド!エクスカリパーをジェネレート?」
→ そのコマンドは見つかりません うるう秒が発生した時の時刻を取得した時、
8:59:60か、8:59:59の繰り返しか、どちらになるのでしょうか? >>105
全てのスマホがうるう秒知ってるわけじゃないので、9:00:00じゃない?
しばらくして時刻補正がかかると。 >>106
うるう秒の瞬間に同時に動くのでは無く、
後からの時間補正で調整ですか、ありがとうございます。 >おそらくやりたいことは人工無能で出来るはずや
ほんそれ SharedPreferencesはXML形式で保存されるということですが
これはユーザーにもアクセスされる可能性があるため大事なデータの保存は危険性があるということでしょうか?
アクセスの危険性を避けるには他にどういった方法がいいでしょうか >>109
想定するユーザのレベルにもよる
アプリケーションを作るときに自分でゆるいアクセス権を
設定していなければ、作成したアプリ内に作成する情報は
アプリでアクセス方法を提供しているもの意外には、
他のアプリ(ユーザ)からアクセスできないようになって
いるので何もしなくても良い
root化したユーザからも中身を確認されたくない場合には
>>110がいうようにデータ自体を読めなくする必要がある >>109
・アプリケーションのローカルキャッシュフォルダ
・SQLiteを使うコンテンツプロバイダ
・クラウドアップルロード
やるならアプリケーションのローカルキャッシュを暗号化するのだろうが、
極限的に言えば、ルート虎れたときに防ぐ術はない。デバッガなりICEを刺されたら防げないし、プロセスメモリにアタッチして、復号したメモリを読まれるだけ。
とりまプリフアレンスは、そういう目的の保存手段ではない。
セーブデータの改竄予防したいなら、シンクライアントにして、セーブデータは全部クラウドに置くしかない。
怠いから誰もやらない。 プリファレンスは別に消えてもいいようなゆるい設定を置いとくところだな 大抵のファイラーはSMBサーバーへの接続設定をSharedPreferencesに保存してるけど
パスワードを生で書き出してるものは(自分が確認した範囲では)一つもなかった。
重要度に応じて暗号化する/しない の判断は変わってくるのでは? AndroidStudioでVector AssetをNewする際に、
Overrideのチェックボックスにチェックを入れるのと入れないのは何が違うんでしょうか フラグメントをreplaceしてaddBackstackしたあとpopBackstackで戻すとき、コールされるはずのonCreateあたりのライフサイクルが呼ばれないんだが
誰か同じ状況になったことない?
ほぼ何も触ってないフラグメント作って試してみてもなるしfragmentViewPagerでも同じ症状出るしもう訳わからん C#でのデスクトップアプリと、Javaでのサーバーサイドしか経験がないんですが、
android開発始めるなら、XamarinとAndroid Studio(Kotlin)のどちらがなじみやすいでしょうか? >>116
その状況でコールされると勝手に君が思い込んでただけだと思うよ >>118
複数のサイトで確認したし何よりコールされないせいでViewがxmlから作っただけのデフォルト状態になるんだよ……
あ、でもつまりonCreateViewは少なくとも呼ばれてるって事か?う〜ん >>117
Android単体の開発ならザマリンが選択肢に入ることはないかな個人的には >>117
サンプルのソース読んでみて読みやすいような
気がするほうってんじゃだめなのかな >>117
それならJavaじゃないかな。
なんの違和感なく、とはいかないが
application暮らすがプロセス
activityクラスがウィンドウ
fragmentがビュー、あるいは子ウィンドウ
serviceクラスは、使い方にクセがあるスレッド
UIスレッド(メインスレッド)しか画面に触るコンポーネントを操作できない
それでいけると思う >>116
間違ったサイト見ても何の役にも立たない。
公式の説明の通り、onViewCreatedかonStateRestoredでBundleを受け取れる。 >>125
なんか勘違いしてるみたいだな……
まあもう自己解決したから良いけどonCreateViewからonResumeまでのライフサイクルは呼ばれるよ
つか知らないのになんでこんなドヤ顔で解説出来るんだろう…… ふと気になって検索したらkothlinでiphoneも開発できるのね
まんま動くわけじゃないだろうけどまんま動くようになってくれたら有りがたいな ■ このスレッドは過去ログ倉庫に格納されています