問題タブ [android-fragmentactivity]

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.

0 投票する
3 に答える
9595 参照

android - onCreateView() が呼び出される前に「フラグメントの ID のビューが見つかりません」というエラーが発生する

これはいくつかの投稿に関連していますが、ビュー階層でのビュー作成の順序を説明するものは何も表示されません (静的 - xml および動的 - コード内)。

アクティビティとフラグメントをホストする FragmentActivity があります。フラグメントの onCreateView が呼び出される前に、フラグメントに対して作成されていないビューから実行時エラーが発生します。ステップスルー中にデバッガーが正しい行番号を見つけることができないように見えるため、ビューを見つけることができない呼び出しメソッドが何であるかを判断することは困難です。

dl されたソースと .jar の間に不一致があるように見えるため、ソースを正しくアタッチして FragmentManager の内部を確認できません。

StreamingActivity.onCreateView に Log.i エントリを配置しましたが、その前にエラーが発生しました。

関連する LogCat は次のとおりです。

私のJavaファイルのスニペット:

私のフラグメント:

私のレイアウトファイル:「res/layout/main.xml」

FragmentActivityの「activity_fragments_main.xml」

他の Stackoverflow スレッドから収集された id not found エラーの考えられる原因:

  • FragmentActivity の onCreate() メソッドの setContentView() の間違ったレイアウト。

確認したところ、xml ファイルはすべてそこにあります。構文エラーがあるか、リンクされたリソースが欠落している可能性がありますが、表示できません。HierarchyViewer が UI をデバッグするための便利なツールであることは理解していますが、機能させることができません。

  • FragmentTransaction.add に渡される ID は、setContentView で指定されたレイアウトの子である必要があります。

私の FragmentActivity の onCreate @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fragments_main);

私のフラグメントの onCreateView

LayoutManager がコンテナーの正しい値、つまり FragmentActivity の setContentView() で設定された値を渡すと思います。しかし、とにかくそこにたどり着くことはありません。onCreateView() に入る前に、logCat のエラーが発生します。

atm について考えることができる唯一のことは、setContentView の後、StreamingActivity の前に呼び出される startupActivity (クローズド サード パーティ) が、コンテンツ ビューを R.layout.activity_fragments_main 以外のものに設定することです。これは、フラグメントのビューの親ではありません。

この問題は、アクティビティにはいつでも呼び出すことができる setContentView がありますが、フラグメントには、フラグメントを開始するフラグメントトランザクションの後に呼び出される onCreateView() しかないという事実に起因しているようです。

onCreateView() が呼び出される前にフラグメントのビューにアクセスしようとするのはなぜですか?

ダルコラム

0 投票する
1 に答える
1017 参照

android - Android アプリケーションの例外

私は、タブレットと携帯電話の両方向けの Android アプリケーションを開発しています。独自のフラグメント クラスとそれに対応するアクティビティを作成しました。しかし、アプリケーションを実行していると、次のエラーが発生します。

これが私のEveryoneAdapterクラスです

そして、私の GridFragment クラスは

私の IndividualViewFragment クラスは以下のとおりです

そして私のマニフェストファイルは以下です

私を助けてください。問題がどこにあるかを見つけることができません。

よろしく、ラケシュ

0 投票する
1 に答える
255 参照

java - フラグメントアクティビティを理解する

私はそれがメインアクティビティにたくさんの特別なメソッドを備えたタイマーだけであるアプリを持っています。これは問題なく機能します。今、私はそれを機能させているので、フラグメントを介して多くの場所にタイマーを挿入する、はるかに複雑なアプリケーションにそれを含めようとしています。

フラグメントアクティビティにすべての特別なメソッドを含める必要がありますか?IE:

または、メインに含める必要がありますか?

両方の方法を試したので質問しています。フラグメントアクティビティの方法ではJavaでエラーが発生しましたが、メインに配置すると実行時にエラーが発生しました。基本的に、スタンドアロンアプリケーションとして優れた動作をするタイマーがありますが、アプリの複数の場所にプラグインできるように、タイマーをフラグメントに変換しようとしています。

「特殊な方法」の例: レイアウトを表示し、タイマーに入力された新しい数値に従って更新します。これらの方法では、使用する前にビューを膨らませる必要があります。

注:実行時に発生するエラーはnullPointerExceptionsです。

0 投票する
1 に答える
99 参照

java - フラグメントでのアクションの実行

フラグメントがアクティビティとどのように相互作用するかを理解するのに少し問題があります。

フラグメントを追加するメインアクティビティがあります。呼び出されるフラグメントクラスは次のとおりです。

膨らませているレイアウトの内部にはtextViewがありますが、フラグメントクラスの内部では「アクセス」できません。

TextView text = (TextView) findViewById(R.id.pwd_status);returnステートメントの下に追加できないのはなぜですか?

これは私には理にかなっています。なぜなら、たくさんの場所にタイマーを追加して、プログラムで1つを変更したい場合、それはどこでも変更されるからです。これが理にかなっていることを願っています。

ありがとう

答え:

onCreateViewを同じままにして、onActivityCreatedを追加しました。その後、私はいつものようにすべてを行うことができます。

0 投票する
3 に答える
879 参照

java - フラグメントの後にメソッドを追加する

どこにでも追加できる「タイマー」であるフラグメントがあります。フラグメントでは、textViewをプログラムで変更し、美しく実行されます。私の問題は、その下の別のメソッドでコンストラクター(?それが正しい用語かどうかわからない)によって膨らんだレイアウトからのビューを使用する場合です。

そのコードはすべてエラーなしで機能しますが、このメソッドを追加しようとすると、次のようになります。

findViewByIdの下に赤い線が表示されますThe method findViewById(int) is undefined for the type Timer_fragment

すべてのメソッドでビューを膨らませて返さないことを考えましたが、それは確かにパフォーマンスに何らかの影響を与えるでしょうか?

ビューを使用する前にレイアウトを膨らませようとしましたが、単語にエラーがあり、解決できないinflaterと言っています。container

私はこれについて正しく行っていますか?

0 投票する
2 に答える
2136 参照

java - Androidでフラグメントの可視性/キーボードの可視性を常に「チェック」する最良の方法

フラグメントが表示されているかどうかを継続的に確認したいと思います。キーボードが Android アプリケーションに存在する場合。これを行うための最良の方法は何ですか?

アクティビティのライフサイクルにはあま​​り詳しくありませんが、これが正しい方法であることを願っています。以下のコードは、OnCreate メソッドに記述されています。ただし、常に実行する必要があります。

0 投票する
2 に答える
12827 参照

android - Intent を使用して Activity から FragmentActivity を開始する

Intent を使用して Activity から FragmentActivity を開始しようとするたびに強制終了します。アクティビティのコードは次のとおりです。

そして、ここにlogcatがあります:

OrgHome.class はマニフェストで正しく定義されています。何が起きてる?

0 投票する
1 に答える
399 参照

android - Android: 1 つのレイアウトで 2 つの FragmentActivity

1 つのレイアウトで 2 つの FragmentActivities をホストすることは何とか可能ですか?

たとえば、次のレイアウトがある場合、1 つの FragmentActivity を container1 に、1 つの FragmentActivity を container2 にホストできますか?:

これが不可能な場合、2 つの異なるフラグメントをロードし、1 つを container1 に、もう 1 つを container2 に表示する FragmentActivity を 1 つ持つことはできますか?

0 投票する
3 に答える
1993 参照

java - 私の onClick メソッドは 80% の確率でしか機能しません

fragmentsビューとビューの奇妙なセットアップがあり、基本的に、特定のビューが でeditTextあるたびにフラグメントを削除する必要があります。editTextclicked

これは機能しますが、約 80% の確率でしか機能しません。

失敗する残りの 20% の時間は、もう一度クリックすると 100% 非表示になります。

初めて叩いたときは、キーボードが飛び出す前に反応してフラグメントを隠すのに十分な時間がないようです。

私のxmlには、Clickableがtrueに設定され、onClickが非表示に設定されています。

私のJavaはここにあります:

何か案は?

0 投票する
1 に答える
3681 参照

java - 別のフラグメント アクティビティでのフラグメントの削除

を実装するフラグメントがあり、フラグメントonClickListeneronClickListener削除しようとします。

badFragmentの下に赤い線が引かれtransaction.remove(badFragment);ます。私の最善の推測は、そのフラグメントが何であるか/どこにあるかがわからないためです。

そのフラグメントを見つけて、削除できるようにするにはどうすればよいですか?

私は試してみました findFragmentId(badFragment); しかし、うまくいきません。

この方法を見つけた場所を教えていただければボーナスポイントです。私は Android ドキュメントで物事を調べるのが苦手なので。