Androidプログラミング質問スレ revision55

■ このスレッドは過去ログ倉庫に格納されています
2018/08/14(火) 10:49:08.05ID:GQVl6hxG
※プログラミング自体が初めて!なあなたには↓↓↓こちらへ
スレ立てるまでもない質問はここで 146匹目
http://mevius.2ch.net/test/read.cgi/tech/1487825717/
Eclipse統合M36【Java/C++/Ruby/Python/Scala】
http://mevius.2ch.net/test/read.cgi/tech/1503723668/
★★Java質問・相談スレッド180★★
http://mevius.2ch.net/test/read.cgi/tech/1492780397/
****オススメ関連リンク****
■ TechBoosterhttp://techbooster.org/category/android/tableofcontents/
■ Androidメモhttp://www.saturn.dti.ne.jp/npaka/android/index.html
■ 逆引きAndroid入門http://www.adakoda.com/android/
■ Androidプログラマへの道http://wiki.livedoor.jp/moonlight_aska/
■ Android Wiki*http://wikiwiki.jp/android/

****公式リファレンス****
■ Android developershttp://developer.android.com/index.html
■ ソフトウェア技術ドキュメントを勝手に翻訳http://www.techdoctranslator.com/
■ 日本Androidの会http://www.android-group.jp/
■ StackOverFlowhttp://stackoverflow.com/questions/tagged/android

****前スレ****
Androidプログラミング質問スレ revision52
http://echo.2ch.net/test/read.cgi/tech/1479305887/
Androidプログラミング質問スレ revision53
http://mevius.2ch.net/test/read.cgi/tech/1488052551/
Androidプログラミング質問スレ revision54
https://mevius.5ch.net/test/read.cgi/tech/1510691057/
2デフォルトの名無しさん
垢版 |
2018/08/14(火) 10:53:24.40ID:UwXfpacN
O2
2018/08/14(火) 12:20:04.64ID:0wjNhgeR
イッチ乙
2018/08/15(水) 22:53:11.73ID:NOFmUe1d
1乙π
2018/08/16(木) 16:53:28.41ID:eam4U5na
ほす
いらない?
2018/08/16(木) 18:36:24.99ID:H0wRoAR6
8.0からproc見れなくなったの?
7デフォルトの名無しさん
垢版 |
2018/08/16(木) 18:40:21.84ID:sDoG3cdo
俺のAndroidアプリ、ストアからインストールした直後数回は普通に立ち上がるんだけど、
何回かすると起動しなくなる
考えられる原因ってなんだと思います?
2018/08/16(木) 18:46:40.60ID:UmhzReQA
AndroidStudioからインストールした場合は?
エラーログは?
いったんそうなるとデータ削除しても立ち上がらない?
9デフォルトの名無しさん
垢版 |
2018/08/16(木) 20:09:29.15ID:sDoG3cdo
>>8
気づいたのは、バックボタンと用意した終了ボタンで終了すると次立ち上がらないっぽい
タスクキルすると次も起動できる
ってことはちゃんと終了処理ができてないのかな
2018/08/16(木) 22:06:01.36ID:tc57iPC0
立ち上がらないんじゃなくてゾンビ化してるのかな
2018/08/16(木) 23:09:33.10ID:2CyRSyXb
Android8.0に更新してから「クラッシュレポートが〜」て表示されてウザいんだがこれどうすればいいん?
2018/08/16(木) 23:57:17.25ID:3h06Zvbw
具体的な原因箇所を指摘できないけど、
Android 8.0になってから、手動操作でアプリを落とせなくなった感触がある。

アクティビティのみであれば、いままで通りに動くが、
フォアグラウンドサービスなり、なんらかのサービスクラスを派生したスレッドが存在すると
ゾンビ化みたいな挙動を示すときがある。
スタジオを使っている場合は、デバッガが確実にkill -9しに行くようだけど、端末操作だと違った動きをする。

単純な推測、憶測のみで語れば、アクティビティだけを停止して、プロセスそのものは停止しないような制御をするようになった気がする。
過去のレガシーを引きずって、これに陥るとしたらが「アクティビティの破棄」が必ず発生する前提の作りをしているんじゃないかって思う。
何となくアクティビティの破棄(OnDestroy)が来ないタイミングが増えたような気がしている。
2018/08/17(金) 00:04:20.23ID:TP+ulg07
そう考える根拠は3つ
1) 実際に俺も同様な体験した事がある
2) 最近のドキュメントを読むと、やたらとアプリケーションコンテキストに誘導するような記述がある
 → プロセスとアクティビティは異なるという設計思想。 ウィンドウに喰われるリソースとプロセスが保持するリソース量は異なる
3) Unixを基礎にしているから、電力の最適化の観点で上記の設計は、メリットが多い

まあ、あくまで俺の見解。 個人的研究に基づく妄想。
2018/08/18(土) 20:27:37.91ID:1gLPW8Tg
以下のように記述した時に,どうしてgetCursor()を使えるのかわかりません.


getAdapter()の返り値がListAdapterでこれをSimpleCursorAdapterにキャストしているのですが,ListAdapterにないgetCursor()をどうして使えるようになるのでしょうか?

getCursor()自体はSimpleCursorAdapteの親クラスであるCursorAdapterにあってCursorAdapterの親クラスのBaseAdapterはListAdapterを実装しているところまでは分かったのですが,getCursor()を使えるようになる理由がわかりません...


public void onItemClick(AdapterView<?> parent, View view, int position, long id){


    @Override

    Cursor c = ((SimpleCursorAdapter)parent.getAdapter()).getCursor();

    c.moveToPosition(position);
2018/08/18(土) 20:33:20.73ID:1scMQT2g
ヒント:Override
2018/08/18(土) 20:45:49.37ID:1gLPW8Tg
コピペする時にミスりました
以下のようなコードです

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){


    Cursor c = ((SimpleCursorAdapter)parent.getAdapter()).getCursor();
 c.moveToPosition(position);
2018/08/18(土) 21:02:19.22ID:kqgWZSb1
SimpleCursorAdapter is CursorAdapter
getCursorを使う目的だったらCursorAdapterへのダウンキャストで十分
2018/08/18(土) 21:08:15.99ID:rejH9nbp
オブジェクト指向の理解が足りてないね
ポリモーフィズムとかのキーワードでぐぐれ
2018/08/18(土) 21:18:41.54ID:1scMQT2g
Overrideできるからどっかに書いてあるんだYO
2018/08/18(土) 23:19:19.30ID:1gLPW8Tg
見る所間違っていて、この場合のgetAdapterの戻り値はListAdapterではなくTだったので普通に理解できました。お騒がせしました。
2018/08/18(土) 23:38:39.76ID:1gLPW8Tg
>>18
オブジェクト指向の言語は初めてなので理解はまだまだ足りていないと思います

レスの口振り的に戻り値がListAdapterの時も動作すると理解されたのだと思いますが、
後学のためにも解説をお願いします。

もし戻り値がListAdapterの場合はそもそもSimpleCursorAdapteにキャストした時点でエラーが出ると思うのですが違うのでしょうか?
2018/08/19(日) 05:02:17.24ID:lz4AfOwu
ListAdapterはinterfaceだから戻り値がListAdapterのオブジェクトであることはありえない
2018/08/19(日) 05:12:02.40ID:TF7KUy8J
ダウンキャストは危険な操作だ。静的コンパイル時に発見できず、ランタイムエラーを誘発する。通常はダウンキャスト前にinstanceof(Javaの場合)で型チェックしておく。まぁ、どちらにせよ結局はランタイムエラーをスローすることになるとは思うけど。
嫌なら自前でCursorListView作ってCursorAdapterを返すgetAdapterを実装しろ。このクラスで常にキャストを実行するようにすれば少しは安全になるかもしれない。
2018/08/20(月) 08:49:06.77ID:1SYmUI47
Androidってjvm介さないネイティブアプリって作れないんかね
2018/08/20(月) 09:19:39.13ID:t2osJeRG
>>24
Androidはjvmなんて一度も使っていないし、DalvikランタイムやARTランタイムを
使わないC言語だけでのアプリならAndroid 2.3から可能になっている
2018/08/20(月) 19:17:12.73ID:TZ+dTlWK
>>24
VisualStudioで作れるよ。
出力されたスケルトン見て、ソッ閉じした。
ネイティブアプリケーションにしても、 ア クティビティのジレンマは回避できない。
2018/08/22(水) 19:20:04.65ID:1XDUu0BB
retrofit2で以下のような階層のリクエストパラメータをpostしたいです。

User
id
name
image(画像)
age
child
id
name
image(画像)
age

画像を送るため@multipartをinterfaceに付加していますが、この場合パラメータをはどのように作成していけばよいでしょうか?
引数に@PartMap Map<String, Object> hogeとして試しましたが、リクエストが送れませんでした。
(コールバックにてonFailure)
ご助言を頂けますと幸いとなります。
宜しくお願いします。
2018/08/23(木) 20:46:12.97ID:M079BOOd
kotorinっているの?
2018/08/23(木) 20:46:42.10ID:M079BOOd
Javaでいいじゃない
2018/08/23(木) 21:38:06.70ID:H8Gnu4tL
よろしくお願いします。

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する方法を教えてください。
2018/08/23(木) 21:45:53.64ID:8xUc+8Ey
inflate
2018/08/23(木) 22:31:08.10ID:03LwByUR
>>30
どうしてもやりたいなら
8      TextView textView =(TextView) ((AppCompatActivity)context).findViewById(resID);
のような感じでいけると思うけど、おすすめしない
2018/08/23(木) 22:31:45.39ID:VuvpD1iv
MainActivityのfindViewByIdを明示的に呼ぶ
2018/08/23(木) 22:46:31.74ID:4aOJVToK
そもそも何がしたいのこれ
2018/08/23(木) 22:53:27.67ID:t/saHEhx
LayoutInflater.from(context)
2018/08/24(金) 07:07:21.15ID:mDAdGQ8b
みなさま、ありがとうございました。
お教えに従って進めてみます!
2018/08/24(金) 09:08:32.70ID:VXzADi/S
そもそもpublicクラスを2つ書くのが無理じゃない?
内部クラスかな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況