AndroidのRadiogroupから動的に作成されたRadiobuttonsを削除します
-
28-09-2019 - |
質問
:)私のRadiogroupのRadioButtonsは、次のようなリンクでいっぱいのArrayList(私のメインアクティビティにある)から動的に作成されます。
arrayList = {"hxxp://helloworld.com"、 "hxxp://helloworld2.net"、...、 "hxxp://watever.com"}
次に、メインアクティビティのメニューボタンから呼び出される「リンク」と呼ばれる新しいクラスがあります。これは、リンクごと(ScrollView)と「Go!」とラジオバブトンを使用して素敵なレイアウトを設定します。ページの下部のボタン(相対レイアウト)。
これはすべて、1つのことを除いてうまく機能します。戻るボタンを使用してアプリケーションを終了し、Androidメニューのアイコンをクリックしてアプリケーションに戻ると、メインアクティビティにアクセスしてから、メニューの[リンク]ボタンをクリックすると、毎回2倍になります。 ???そのようです:
リンク0
リンク1
リンク2
リンク0(もう一度)
リンク1(もう一度)
リンク2(もう一度)
これにより、去ることから「リンク」アクティビティに戻るたびに、底部へのリンクが追加されます。 Radiogroupに入れる前に、リンクアクティビティの最後のセッションで生成されたすべてのラジオボタンをクリアする方法を呼び出す方法はありますか?私は自分の変更を試みました onPause()
に finish();
キャッシュを解放してみました RadioGroup.destroyDrawingCache();
何もしていないようです。
解決
この「すべてを削除する」アプローチの代わりに(確かに可能です)、私は何か違うことを試みます - 最初にあなたのラジオボタンを入力するコードにブレークポイントを配置し、バックボタンを押し、次にアプリに戻り、再び戻って、もう一度戻って再び戻ってきますアプリなどに戻ります。
アプリケーションに切り替えるたびにブレークポイントがヒットした場合、問題があります。たとえば、そのコードをOnCreateに移動することで修正するため、アクティビティの作成時間で1回のみ呼び出されます。それが実行不可能な場合は、ラジオボタンの母集団コードの直前にチェックされ、(最初の)無線ボタンの母集団が発生した後にTRUEに設定される「ブールムルディオビュット装置」などのクラス変数を使用します。
他のヒント
このように動的に作成されたラジオボタンを削除できます。
RadioGroup rg=(RadioGroup)findViewById(R.id.radioGroupnew1);
rg.clearCheck();
rg.removeAllViews();
私はそれを手に入れました、私はメモリの場所がondestroy()が呼ばれた後でもそこにアレイリストを残したと思います。私がこれを修正するためにしたのは、「.clear();」という呼び出しだけでした。 Androidアプリケーションの主なアクティビティでインスタンス化した直後のListArrayで。これにより、アプリケーションが開くたびに[ArrayList]がインスタンス化されてからクリアされます。魅力のように機能します:)