0

たとえば、2 つのシークバーを含むフラグメントがあります。1 つはレイアウト XML をロードし、もう 1 つは実行時にロードします。

public class FragmentEqualizer extends Fragment {

    @Override
public void onCreate(Bundle state) {
    super.onCreate(state);

    setRetainInstance(true);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle b)
{       
    View view = inflater.inflate(R.layout.fragment_equalizer, container, false);
            myLinearLayout = (LinearLayout) view.findByViewId(R.id.linearLayout);
            SeekBar bar = new SeekBar(view.get.Context());
            bar.setLayoutParams(layoutParams);
            bar.setMax(100);
            bar.setProgress(50);
            myLinearLayout.addview(bar);

            return view;
    }
}

アプリケーションを起動して各シークバーのプログレスバーを変更し、デバイスの画面の向きを変更した後、ロードされたビューのプログレスバーの状態は同じに保たれますが、ランタイムにロードされたビューのプログレスバーの状態は次のようにデフォルトになります変更していません。

私の問題は、このsetRetainInstance がインスタンスを保持していないようです

誰か助けてくれませんか???

tks

4

1 に答える 1

0

シークバーに ID を追加したところ、機能しました。

bar.setId(1)。

于 2013-02-16T22:23:51.230 に答える