【问题标题】:calling a mothod into a fragment from another activity将方法调用到另一个活动的片段中
【发布时间】:2019-11-26 05:50:07
【问题描述】:

我在一个活动中有一个编辑文本,我想在另一个片段中设置我的编辑文本的大小,例如PreferenceFragmentCompat。我不知道该怎么办?

这是我的片段:

public static class SettingsFragment extends PreferenceFragmentCompat {

       public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
            setPreferencesFromResource(R.xml.root_preferences, rootKey);
     }
}

这是我的活动:

public class firstActivity extends AppCompatActivity {
    EditText edittext1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fist);
        editText = findViewById(R.id.edittext_1_id);
   }
}

【问题讨论】:

    标签: android android-fragments android-edittext


    【解决方案1】:

    您可以使用事件总线将数据从活动发送到片段

    片段

      public static class SettingsFragment extends PreferenceFragmentCompat implement sendEdittextSize {
    
      public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
            setPreferencesFromResource(R.xml.root_preferences, rootKey);
    
      }
    
      @Subscribe(threadMode = ThreadMode.MAIN)
      public void onMessageEvent(CountEvent event) {
      int count = event.getCount();
      }    
    
      }
    

    活动

      public class firstActivity extends AppCompatActivity {
      EditText edittext1;
      SendEdittextSize sender;
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_fist);
    
         sender = this;
         editText = findViewById(R.id.edittext_1_id);
         getCount();
    
     }
    
      public void getCount(){
    
      EventBus.getDefault().post(new editText.getText().toString().length());
    
      }
    
       @Override
       public void onStart() {
        super.onStart();
        if (!EventBus.getDefault().isRegistered(this))
            EventBus.getDefault().register(this);
    
       }
    
       @Override
       protected void onDestroy() {
        super.onDestroy();
        EventBus.getDefault().unregister(this);
    
       }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      • 2011-10-20
      相关资源
      最近更新 更多