0

ダイアログフラグメントの後に Textview の値を更新しようとすると、正しい値が得られますが、前の値が長い場合、古いビューがまだバックグラウンドで表示されます (醜い)。

現在のフラグメントに対してonResume()を呼び出してみましたが、改善はありませんでした。

ダイアログを呼び出すだけで、リスナーonFinishEditDialog()が呼び出されると、テキストを設定するだけです

別のアプリを開いて戻ってきた場合、それは完璧です(古いものはなくなりました)どうすればこれが可能になりますか?

xml レイアウトで:

 <TextView
                    android:id="@+id/txttotalcho"
                    style="@style/importantTextView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="40dp"
                    android:text="33 cho"
                    android:textSize="64dp" />

MainActivity で:

@Override
    public void onGoToPage(int pageNumber,boolean verso, Pasto p,ArrayList<CiboSelezionato> cibiSelezionati,String extra) {
            FragmentManager fm = getFragmentManager();
            FragmentTransaction ft = fm.beginTransaction();
            Fragment firstDetail = 

(Fragment)fm.findFragmentByTag(SECOND_DETAIL_FRAGMENT_TAG);
                ft.remove(firstDetail);

                ft.commit();
                        FragmentTransaction ft2 = fm.beginTransaction();
        switch (pageNumber){

                        case Constants.P_SCELTA_PASTO:{
                             WizardPasti10 secondDetail = WizardPasti10.getInstance(this);
        ft2.replace(R.id.anchor_layout,secondDetail,SECOND_DETAIL_FRAGMENT_TAG);
                            break;
                        }
                        case Constants.P_TOTAL_CHO:{
                             WizardPastiTotalCho secondDetail = WizardPastiTotalCho.getInstance(this);
     ft2.replace(R.id.anchor_layout,secondDetail,SECOND_DETAIL_FRAGMENT_TAG);

                            break;
                        }
             ft2.commit();
                    View v1,v2;
                    v1=(View)findViewById(R.id.anchor_left);
                    v2=(View)findViewById(R.id.anchor_layout);
                    v1.setVisibility(View.GONE);
                    v2.setVisibility(View.VISIBLE);
                v2.setBackgroundColor(getResources().getColor(R.color.white));
    }

フラグメント WizardPastiTotalCho:

private TextView txtTotalCho;
  @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

          View firstView = inflater.inflate(R.layout.wizardpastitotalcho, container, false);
                txtTotalCho = (TextView)firstView.findViewById(R.id.txttotalcho);
            txtTotalCho.setOnClickListener(new OnClickListener(){
                @Override
                public void onClick(View button) {
                    FragmentTransaction ft = getFragmentManager().beginTransaction();
                    DialogFragment newFragment = new TastierinoDialogFragment(WizardPastiTotalCho.this,Constants.CARBOIDRATI,0);
                    newFragment.show(ft, "totalchoDialog");
                }
            });
    }



     @Override
            public void onFinishEditDialog(int dialogType, String inputText) {
     //called when i close the dialogFragment
                txtTotalCho.setText(inputText+" cho");
txtTotalCho.setBackgroundColor(Color.YELLOW);//just to see the difference
                try {
                    totalCho=Float.parseFloat(inputText);
                    tmpPasto.setCarboidrati(totalCho);
                } catch (NumberFormatException e) {
                    e.printStackTrace();    
                }
            }

重複するラベル

4

0 に答える 0