タグ付けされた質問 「android-activity」

Androidでのアクティビティの作成または管理に関する質問。Androidアプリケーションでは、アクティビティは、ユーザーが何かを実行できるようにするユーザーインターフェイスを提供するコンポーネントです。簡単な例は、電話をかける、写真を撮る、電子メールを送信する、または地図を表示することです。

13
ソーシャルアクティビティストリームを実装する最良の方法は何ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 この質問を改善する ソーシャルアクティビティストリームを実装する最良の方法はどれですか(Facebookが最も有名な例です)。関連する問題/課題は次のとおりです。 さまざまな種類のアクティビティ(投稿、コメントなど) さまざまな種類のオブジェクト(投稿、コメント、写真など) さまざまな役割に関与する1-nユーザー(「ユーザーxはユーザーZの投稿に対するユーザーyのコメントに返信しました」) 同じアクティビティアイテムのさまざまなビュー(「あなたがコメントした..」vs.「あなたの友人xがコメントした」vs.「ユーザーxがコメントした..」=>「コメント」アクティビティの3つの表現) ..その他、特にFacebookのように高度なレベルに進んだ場合、たとえば、複数のアクティビティ項目を1つに結合する(「ユーザーx、y、zがその写真にコメントした」) そのようなシステム、データモデルなどを実装するための最も柔軟で効率的で強力なアプローチについてのパターンや論文などについての考えや指針は、高く評価されます。 ほとんどの問題はプラットフォームに依存しませんが、Ruby on Railsでこのようなシステムを実装する可能性があります


13
Androidサービスにアクティビティと通信させる方法
私は最初のAndroidアプリケーションを作成していて、サービスとアクティビティーの間の通信に頭を悩ませようとしています。バックグラウンドで実行され、いくつかのgpsと時間ベースのロギングを実行するサービスがあります。サービスの開始と停止に使用されるアクティビティがあります。 したがって、最初に、アクティビティが開始されたときにサービスが実行されているかどうかを確認できる必要があります。これについては他にもいくつか質問がありますので、理解できると思います(ただし、気軽にアドバイスを提供してください)。 私の本当の問題:アクティビティが実行されていてサービスが開始されている場合、サービスがアクティビティにメッセージを送信する方法が必要です。この時点での単純な文字列と整数-ほとんどステータスメッセージ。メッセージは定期的には発生しないので、別の方法がある場合、サービスをポーリングするのは良い方法ではないと思います。この通信はユーザーがアクティビティを開始したときにのみ必要です。サービスからアクティビティを開始したくありません。つまり、アクティビティを開始し、サービスが実行されている場合、何か興味深いことが発生すると、アクティビティUIにいくつかのステータスメッセージが表示されます。アクティビティを開始しないと、これらのメッセージは表示されません(それほど興味深いメッセージではありません)。 サービスが実行されているかどうかを判断でき、実行されている場合は、アクティビティをリスナーとして追加できるようです。次に、アクティビティが一時停止または停止したときに、リスナーとしてアクティビティを削除します。それは実際に可能ですか?それを行うために私が理解できる唯一の方法は、アクティビティにParcelableを実装させ、AIDLファイルを作成して、サービスのリモートインターフェイスを介して渡すことができるようにすることです。それはやり過ぎのようですが、ActivityがどのようにwriteToParcel()/ readFromParcel()を実装する必要があるのか​​わかりません。 より簡単な、またはより良い方法はありますか?助けてくれてありがとう。 編集: これに後で興味を持つ人のために、サンプルディレクトリ/apis/app/RemoteService.javaにAIDLを介してこれを処理するためのGoogleのサンプルコードがあります。

8
画面の向きを変更してもカスタムビューの状態が失われないようにする方法
画面の向きを変えても、特定の重要なコンポーネントを保存および復元するonRetainNonConfigurationInstance()ために、メインActivityを正常に実装しました。 しかし、方向が変わると、カスタムビューが最初から再作成されているようです。これは理にかなっていますが、私の場合、問題のカスタムビューはX / Yプロットであり、プロットされたポイントはカスタムビューに保存されるため、不便です。 onRetainNonConfigurationInstance()カスタムビューに似たものを実装する巧妙な方法はありますか、または「状態」を取得および設定できるメソッドをカスタムビューに実装するだけでよいですか?

24
プログラムでAndroidアプリを「再起動」するにはどうすればよいですか?
まず、Androidでアプリケーションを強制終了/再起動してはいけないことを知っています。私の使用例では、サーバーが特定の情報をクライアントに送信する特定のケースでアプリケーションを出荷時設定にリセットしたいと思います。 ユーザーは、アプリケーションの1つのインスタンスを使用してサーバーにログインすることしかできません(つまり、複数のデバイスは許可されません)。別のインスタンスがその「ログイン済み」ロックを取得した場合、そのユーザーの他のすべてのインスタンスは、一貫性を維持するためにデータを削除(ファクトリーリセット)する必要があります。 ユーザーがアプリを削除して再インストールすると、異なるインスタンスIDが生成され、ユーザーがロックを解放できなくなるため、強制的にロックを取得することが可能です。そのため、強制的にロックを取得することが可能です。 その力の可能性のために、私たちは常に具体的なインスタンスでそれがロックを持っていることをチェックする必要があります。これは、サーバーへの(ほぼ)各要求に対して行われます。サーバーは「間違ったロックID」を送信する可能性があります。それが検出された場合、クライアントアプリケーションはすべてを削除する必要があります。 それがユースケースでした。 sharedPrefsの値に応じてActivity、Login ActivityLまたはアプリのメインActivityB を開始するAがあります。LまたはBを開始した後、LまたはBのみが実行されるように自身を閉じます。したがって、ユーザーがすでにログインしている場合、Bは現在実行中です。 BがCを開始します。C startServiceがIntentServiceDを呼び出します。その結果、次のスタックになります。 (A)> B> C> D DのonHandleIntentメソッドから、イベントがResultReceiver Rに送信されます。 Rは、ユーザーにアプリケーションを工場出荷時の状態にリセットする(データベースやsharedPrefsなどを削除する)ことを選択できるダイアログを提供することにより、このイベントを処理します。 出荷時設定にリセットした後、アプリケーションを再起動し(すべてのアクティビティを閉じるため)、Aのみを再起動します。これにより、ログインActivityL が起動され、それ自体が終了します。 (A)> L ダイアログのonClickメソッドは次のようになります。 @Override public void onClick(DialogInterface dialog, int which) { // Will call onCancelListener MyApplication.factoryReset(); // (Deletes the database, clears sharedPrefs, etc.) Intent i = new Intent(MyApp.getContext(), A.class); i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); …

19
Androidアクティビティダイアログが外部のタッチで閉じないようにする
Theme.Dialogスタイルを使用しているアクティビティがあるため、別のアクティビティの上にフローティングウィンドウが表示されます。しかし、ダイアログウィンドウの外側(バックグラウンドアクティビティ上)をクリックすると、ダイアログが閉じます。この動作を停止するにはどうすればよいですか?



12
異なるアクティビティで同じナビゲーションドロワー
developer.android.com Webサイトのチュートリアルに示されているように、機能するナビゲーションドロワーを作成しました。しかし、今は、アプリケーションの複数のアクティビティ用にNavigationDrawer.classで作成した1つのNavigation Drawerを使用したいと思います。 私の質問は、ここの誰かが小さなチュートリアルを作成できたら、1つのナビゲーションドロワーを複数のアクティビティに使用する方法を説明しています。 このAnswer Android Navigation Drawerで最初に読んだのは 、複数のアクティビティ しかし、それは私のプロジェクトでは機能しませんでした public class NavigationDrawer extends Activity { public DrawerLayout drawerLayout; public ListView drawerList; private ActionBarDrawerToggle drawerToggle; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); drawerToggle = new ActionBarDrawerToggle((Activity) this, drawerLayout, R.drawable.ic_drawer, 0, 0) { public void onDrawerClosed(View view) { …

8
Android-「戻る」ボタンをオーバーライドして、アクティビティが完了()しないようにする方法は?
現在、アクティビティが表示されているときに、通知バーにも表示されるアクティビティがあります。 これは、ユーザーがホームを押してアクティビティがバックグラウンドにプッシュされると、通知を介してアクティビティに戻ることができるようにするためです。 この問題は、ユーザーが戻るボタンを押すと発生しますが、アクティビティは破棄されますが、ユーザーが押し戻して通知を介してアクティビティにアクセスできるようにしたいため、通知は残ります。しかし、ユーザーがこれを試行すると、古いアクティビティを取り戻すのではなく、新しいアクティビティを開始しようとしているとNullポインタが表示されます。 したがって、基本的には、[戻る]ボタンを[ホーム]ボタンとまったく同じように動作させたいので、これまでに試した方法を次に示します。 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5 && keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { Log.d("CDA", "onKeyDown Called"); onBackPressed(); } return super.onKeyDown(keyCode, event); } public void onBackPressed() { Log.d("CDA", "onBackPressed Called"); Intent setIntent = new Intent(Intent.ACTION_MAIN); setIntent.addCategory(Intent.CATEGORY_HOME); setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(setIntent); return; …

11
AndroidアプリケーションでIntentを使用して別のアクティビティを表示する
私のAndroidアプリケーションには、2つのアクティビティクラスがあります。最初のボタンにボタンがあり、クリックしたときに2番目を表示したいのですが、エラーが発生します。ここにクラスがあります: public class FirstActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button orderButton = (Button)findViewById(R.id.order); orderButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(FirstActivity.this, OrderScreen.class); startActivity(intent); } }); } } ボタンがクリックされたときに表示する必要がありますが、絶対に表示しない2番目のクラス: public class OrderScreen extends Activity { @Override public void onCreate(Bundle …

8
アンドロイド。フラグメントgetActivity()がnullを返すことがある
開発者コンソールのエラーレポートで、NPEの問題があるレポートが表示されることがあります。コードの何が問題なのか理解できません。エミュレーターと私のデバイスアプリケーションはforceclosesなしで正常に動作しますが、一部のユーザーは、getActivity()メソッドが呼び出されたときにフラグメントクラスでNullPointerExceptionを受け取ります。 アクティビティ pulic class MyActivity extends FragmentActivity{ private ViewPager pager; private TitlePageIndicator indicator; private TabsAdapter adapter; @Override public void onCreate(Bundle savedInstanceState) { pager = (ViewPager) findViewById(R.id.pager); indicator = (TitlePageIndicator) findViewById(R.id.indicator); adapter = new TabsAdapter(getSupportFragmentManager(), false); adapter.addFragment(new FirstFragment()); adapter.addFragment(new SecondFragment()); indicator.notifyDataSetChanged(); adapter.notifyDataSetChanged(); // push first task FirstTask firstTask = new FirstTask(MyActivity.this); …

14
getActivity()がフラグメント関数でnullを返す
このようなパブリックメソッドのフラグメント(F1)があります public void asd() { if (getActivity() == null) { Log.d("yes","it is null"); } } そして、私が(アクティビティから)それを呼び出すと、それはnullです... FragmentTransaction transaction1 = getSupportFragmentManager().beginTransaction(); F1 f1 = new F1(); transaction1.replace(R.id.upperPart, f1); transaction1.commit(); f1.asd(); それは私が非常に間違っていることであるに違いありませんが、それが何であるかはわかりません

10
キャンバス上のAndroidセンターのテキスト
以下のコードを使用してテキストを表示しようとしています。問題は、テキストが水平方向の中央に配置されていないことです。の座標をdrawText設定すると、テキストの下部がこの位置に設定されます。テキストが水平方向にも中央揃えになるようにテキストを描画してください。 これは私の問題をさらに表示するための画像です: @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); //canvas.drawRGB(2, 2, 200); Paint textPaint = new Paint(); textPaint.setARGB(200, 254, 0, 0); textPaint.setTextAlign(Align.CENTER); textPaint.setTypeface(font); textPaint.setTextSize(300); canvas.drawText("Hello", canvas.getWidth()/2, canvas.getHeight()/2 , textPaint); }


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.