0

離散シークバーに問題があります。私はテキストを編集するクラスを持っています。同じクラスには、ボタンがクリックされ、フラグメントがアクティブになります。その断片には、離散シークバーがあります。離散シークバーEditTextのサイズを変更する

EditText tryFont = (EditText) findViewById(R.id.etTryfont); 
btnformat.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      FragmentManager fragmentManager = getSupportFragmentManager(); 
      final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
      if(!status){ 
       fragmentTransaction.replace(R.id.actions, fontFormat); 
       fragmentTransaction.addToBackStack(null); 
       fragmentTransaction.commit(); Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 

ここで、R.id.actionsは、フラグメントであるフォントフォーマットクラスに置き換えられた相対レイアウトです。フォントフォーマットクラスには、シークバーがあります。

SeekBar zoom = (SeekBar) getView().findViewById(R.id.zoom); 
zoom.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 

     } 
     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 

     } 
     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 

     } 
    }); 

この編集テキストのテキストサイズをこのフラグメントクラスから変更するにはどうすればよいですか? I共有プリファレンスを使用して断片化するのEditTextの値を渡すと

EditText text = (EditText) getView().findViewById(R.id.etTryfont); 
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity()); 
    String editTextValue = sharedPref.getString("text", "default"); 

text.setText(editTextValue); 

としてバックのEditTextにそれを保存しようとした文字のサイズを大きくしようとしたが、それは働いdidnotました。誰でも私を助けてくれますか?私はアンドロイドにはとても新しいです。

答えて

0

あなたはこの

EditText text = (EditText)getActivity().findViewById(R.id.etTryfont)のようなフラグメントであなたのEditTextを呼び出す必要があります。

、その後、あなたが活動使用して、フラグメントへのあなたの活動から値を渡す場合

String value = tryFont.getText().toString(); 
Bundle bundle = new Bundle(); 
bundle.putString("value", value); 
fontFormat.setArguments(bundle); 

フラグメントonCreateViewで()を使用中。

String value = getArguments().getString("value"); 

、その後、あなたはフォントサイズ

をEDITTEXTし、変更するテキストはPSだけの断片で正しくのEditTextを初期化しようとして始めて、あなたの前のコードが

+0

はご回答いただきありがとうございます。フラグメントをログに記録しかし、私は.. rootViewに問題が生じています:( – Sudeep

+0

問題はどのような?ルートビューを解決することはできません – Rainmaker

+0

を。 私は (のEditText)rootView.findViewById(R.id.etTryfont)と (のEditText)rootViewを(試してみました).findViewById(R.id.etTryfont) – Sudeep

0

テイクリスナーを動作するかどうかを確認設定することができます最初:

public interface TextSizeChangedListener { 
    void onChangedTextSize(int textSize); 
} 

そして、それはDIAでシークバーと実装ダイアログを使用し

public class FontSizeControllerDialogFragment extends DialogFragment implements View.OnClickListener { 

    View dialogLayout; 

    private TextSizeChangedListener textSizeChangedListener; 

    public static FontSizeControllerDialogFragment newInstance() { 
     return new FontSizeControllerDialogFragment(); 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setCancelable(false); 
     try { 
      textSizeChangedListener = (TextSizeChangedListener) getParentFragment(); 
     } catch (ClassCastException e) { 
      throw new ClassCastException("Calling fragment must implement TextSizeChangedListener"); 
     } 
    } 

    @NonNull 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     dialogLayout = getActivity().getLayoutInflater().inflate(
       R.layout.layout_dialog_seekbar, null); 
     Button yes = (Button) dialogLayout.findViewById(R.id.ok_font); 
     yes.setOnClickListener(this); 
     SeekBar seekBar = (SeekBar) dialogLayout.findViewById(R.id.dialog_seekbar); 
     seekBar.setMax(Constants.SAVED_FONT_SIZE); 
     seekBar.setProgress(PreferenceSetting.getInt(getContext(), Constants.FONT_SIZE_NEWS_DETAILS, 0) - Constants.SAVED_FONT_SIZE); 
     seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
      @Override 
      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
       progress = progress + Constants.SAVED_FONT_SIZE; 
       if(textSizeChangedListener != null){ 
        textSizeChangedListener.onChangedTextSize(progress); 
       } 
       PreferenceSetting.putInt(getContext(), Constants.FONT_SIZE_NEWS_DETAILS, progress); 
      } 

      @Override 
      public void onStartTrackingTouch(SeekBar seekBar) { 

      } 

      @Override 
      public void onStopTrackingTouch(SeekBar seekBar) { 

      } 
     }); 

     Dialog dialog = new Dialog(getActivity(), R.style.FullHeightDialog); 
     dialog.getWindow() 
       .getDecorView() 
       .setBackgroundColor(
         getResources().getColor(android.R.color.transparent)); 
     dialog.getWindow().setDimAmount(0); 
     dialog.setContentView(dialogLayout); 
     dialog.setCanceledOnTouchOutside(false); 
     Window window = dialog.getWindow(); 
     window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); 
     window.setGravity(Gravity.CENTER); 
     dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE); 
     return dialog; 
    } 

    @Override 
    public void onClick(View view) { 
     if (view.getId() == R.id.ok_font) { 
      dismiss(); 
     } 
    } 

    @Override 
    public void onDestroyView() { 
     if (getDialog() != null) { 
      getDialog().setDismissMessage(null); 
     } 
     super.onDestroyView(); 
    } 
} 

FontSizeControllerDialogFragment.newInstance().show(getChildFragmentManager(), "dialog"); 

はそれを実装します。

implements TextSizeChangedListener 
@Override 
public void onChangedTextSize(int textSize) { 
    if (newsDetailsTV1 != null) { 
     newsDetailsTV1.setTextSize(textSize); 
    } 
    if (newsDetailsTV2 != null) { 
     newsDetailsTV2.setTextSize(textSize); 
    } 
} 
関連する問題