10

ナビゲーション ドロワーの作成方法に関するこのチュートリアルに従おうとしていますが、ユーザーがドロワー リストから項目を選択した後に新しいコンテンツを表示するためにフラグメントを使用したくありません。この問題を回避するための最良のアプローチは何ですか? フラグメントを実装していない API 10 を使用しています。

4

4 に答える 4

18

まず、API 10 は、DrawerLayout. DrawerLayoutこれは 2 年以上前から存在しており、過去 2 年間の Android の機能に慣れていない場合など、新しいことをいじろうとするべきではありません。

DrawerLayout第二に、フラグメントに結び付けられているものは何もありません。リンク先の Web ページを引用します。

ユーザーが引き出しのリストで項目を選択すると、システムは setOnItemClickListener() に指定された OnItemClickListener で onItemClick() を呼び出します。onItemClick() メソッドで行うことは、アプリの構造をどのように実装したかによって異なります。

この 2 つの文をよく読むと、どちらにも「フラグメント」という言葉が出ていないことがわかります。これは、DrawerLayoutフラグメントに関連付けられていないためです。彼らが示すサンプル コードはフラグメントを使用していますが、それは単なるサンプル コードです。

したがって、UI を自由に更新できます。

  • Android サポート パッケージのフラグメントのバックポートを使用して実行するFragmentTransaction、または
  • 活動を開始するか、
  • setContentView()既存のアクティビティで再度呼び出すか、
  • それ以外の場合は、既存のアクティビティの UI を変更します (たとえば、一部のウィジェットを非表示/表示する)。
于 2013-05-22T22:14:15.703 に答える
3

LayoutInflater クラスも使用できます。

  1. xml レイアウト ファイルを作成します。
  2. findViewById を使用して、変更するビューを見つけます。
  3. .removeAllViews() メソッドを使用して、見つかったビューからすべての子を削除します。
  4. .inflate() メソッドを使用して、xml レイアウト コンテンツを見つかったビューにインフレートします。

これは例です:

LinearLayout layoutToChange = (LinearLayout)findViewById(R.id.layout_to_change);
layoutToChange.removeAllViews();

LayoutInflater inflater = LayoutInflater.from(this);
LinearLayout newLayout = (LinearLayout)inflater.inflate(R.layout.new_layout, null);

layoutToChange.addView(newLayout);
于 2016-09-12T23:52:11.413 に答える
2

このコードを使用してください

private void selectItem(int position) {


    // Locate Position
    switch (position) {
    case 0:
            startActivity(new Intent(this,TEST.class));
        break;
于 2014-03-16T03:58:55.703 に答える