0

私の FragmentActivity はループし、同じ xml とアクティビティから 8 つの Fragments を作成します。フラグメントには がありTextView、フラグメントにパラメータを渡すことで、各フラグメント内に異なるテキストを表示したいと考えていますTextView。この方法では、テキストが異なる 139 個の同一のフラグメントを作成する手間を省くことができます。

問題、すべて同じテンプレート (xml とアクティビティ) を共有するため、 I の場合、8 つのフラグメントすべてのTextView変更が行われます。setText()

解決策- 以下の私の答えを見てください。

極端な

4

2 に答える 2

0

これは、フラグメントを複製するときに、作成する各フラグメントに対して同じビューを参照するためです。フラグメントの ID を変更する必要があります。そうしないと、常に同じフラグメントを呼び出します。

最終回答: onCreateView メソッドについて

private static int id = 0;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle      savedInstanceState) {
    LinearLayout mLinearLayout = new LinearLayout(this);
    TextView mTextView = new TextView(this);
    mTexTView.setId(Id); 
    id++;
    mLinearLayout.addView(mTextView);

    return mLinearLayout;
}

テキストビューのIDを使用してテキストを設定した後。

于 2013-06-10T21:19:47.140 に答える
0

さて、上記の方法でフラグメントを複製しようとしたときに、コードに何か問題があることがわかりました。

私の解決策

新しいダミーの Android プロジェクトを作成し、ナビゲーションの種類としてScrollable Tabs + Swipeを選択しました。

その後、1 つのアクティビティがあることを知りました。

main.java - 拡張するもの:

FragmentActivity

そして、2 つのレイアウト:

main.xml - 以下を含む:

<android.support.v4.view.ViewPager>、 と

<android.support.v4.view.PagerTitleStrip>

Fragment.xml - 以下を含む:

TextView

アダプターを調整することで、同じレイアウト (xml) に基づいて独自の Fragments を作成することができました。

最終的には、スクロール可能なタブ + スワイプを使用して新しいダミー プロジェクトを作成し、その例に基づいてコードを調整します。

この助けを願っています。

極端な

于 2013-06-11T13:56:06.927 に答える