問題タブ [commonsware]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Busy Coder - サンプル プロジェクトのダウンロード
サンプル プロジェクトを 1 回でダウンロードするにはどうすればよいですか? 例えば。Basic/Label プロジェクトのリンクをクリックすると、個別のファイルをダウンロードするページが表示されます。リリース ページの BlankProject.zip のように、すべてを .zip でダウンロードすることはできませんか? ありがとう
android - アクションバーにアプリ名が表示されない
一部のコモンズウェア アプリ サンプルでは、アプリ名のテキストがアクション バーに表示されません。たとえば、Containers デモ アプリには、テキストのない灰色のバーしかありません。テキストが表示されない理由はありますか?
android - CommonsWare 5.9 イベント バスの例でのスレッド セーフの問題
CommonsWare 5.9 イベント バスの例に関して、スレッド セーフの問題/質問があります。
model
ArrayList
複数のスレッドからアクセスする方法に問題があるように見えます。これが機能する場合、その理由を理解していただければ幸いです。
このコードは、 の宣言、初期化、および入力を実行しますmodel
。
400 ミリ秒ごとに起動し、エントリを に追加しmodel
ます。の消費model
は、投稿するのに便利なコードをすぐに持っていないという点で、もう少し複雑です。のどこかに落ちていArrayAdapter
ます。モデルの消費は、 への呼び出しによってトリガーされArrayAdapter.notifyDataSetChanged()
ます。
私が抱えている問題/質問はmodel
、(Android UI スレッドではなく) 1 つのスレッドに書き込まれますが、消費は UI スレッドで発生しています。のすべての要素model
ArrayList
が不変であるため、これは役に立ちますが、それでも私には正しくないように思えます。
このコードが実際に正しい場合、その理由を理解したいと思います。ありがとう、リー。
アップデート:
私の問題はイベントバス部分にあるとは思いません。私はそれを得ると思います。モデルが1つのスレッド(ワーカースレッド、上記のコード)で書き込まれているのに対し、理論的には別のスレッド(UIスレッド)で同時に読み取ることができるというJavaの問題です。モデルには、ある種の同時アクセス制御が必要なようです。同期ブロックまたは並行ArrayList
. しかし、モデルの最終的な消費者は、自分のアプリで制御できないコードであり、ArrayAdapter
どこかに落ちています。同期を追加できません。がArrayAdapter
モデルで初期化されると、ArrayAdapter
がそれを所有し、UI スレッドからアクセスします。非 UI スレッドがこの方法でモデルを変更できるかどうかはわかりません。
android - ArrayPagerAdapter のタブの追加と削除
コードでデモと同じ方法でタブを追加および削除しようとしています。arrayAdapter.remove
メソッドからremove()
デモがどのように行われるかを正確に呼び出すトグルボタンがあります。がarrayAdapter.remove
呼び出されると、要求された位置のタブは正しく削除されますが、変更はそのタブのヘッダーに反映されません。また、1 つのタブを削除した後に最後のタブをクリックしようとすると、何も起こりませんが、削除したいタブが削除されます。これがタブを再配置するロジックである場合、この null タブをどのように取り除くことができますか? タブにスワイプしようとすると、もうアクセスできないため、タブのフラグメントが削除されていることはわかっています。トグルボタンがクリックされたときに呼び出されるadd()
タブにタブを追加するという同様の問題があります。adapter.setTabsToShow()
add()
remove()
デモと同じです。以下にコードを掲載しました。
android - ホームボタンを押した後に CWAC LocationPoller がシャットダウンする
cwac-locpoll のデモ例を実行しています。LocationLog.txt ファイルに毎分自分の位置を記録するためのものです。アプリが画面上にある限り正常に動作しますが、ホームボタンを押すとログが停止し、アプリケーションに戻ると再度リロードされます。画面上で実行されているときに画面をロックすると同じことが起こりましたが、アプリを次のように強制的にスリープさせました。
ただし、これは、デバイスで他のアプリを実行しているときにバックグラウンドで実行するという問題を解決しませんでした. 使用している端末は Huawei Honor 7 です。
私の MainActivity のコード全体は次のとおりです。
}
android - 別のアイテムを追加するとアプリがクラッシュする - cwac-pager
cwac-pager
のArrayPagerAdapter
( )
に別のページを追加するのに問題がありますv4
。システムを使用して新しいタブを動的に追加できなかったため、そのライブラリを使用する必要がありましたPagerAdapter
。
MainActivity.java
:
TestFragment.java
:
activity_main.xml
:
test_frag.xml
:どちらであっLinearLayout
てもView
、 だけです。
でMainActivity.java
追加したコメントを参照してくださいonStart()
: 1 つのタブ (コメントされたメソッドの最後の 2 行) だけでアプリを実行すると、アクティビティは正しく開始されます。ただし、行のコメントを解除して別のタブを追加すると、アプリはすぐにクラッシュします。私は何を間違っていますか?
ありがとう
編集:logcat
例外もエラーもありません。