2016-04-22 72 views
0

我試圖在另一個片段處於活動狀態時更改一個片段的EditText。然而沒有任何反應我通過一個普通的方法調用,並且我懷疑它與當時沒有被激活的視圖有關。雖然我沒有得到任何例外。對不起,如果我缺少重要的東西。這是我的第一個問題。在未激活的片段中更改EditText

public class FirstFragment extends Fragment { 

    private EditText textView_Text; 

    @Override 
    public View onCreateView(LayoutInflater inflater, 
         ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.first_fragment_layout, container, false); 
    } 

    @Override 
    public void onViewCreated(View view, Bundle savedInstanceState) { 

     super.onViewCreated(view, savedInstanceState); 
     this.mainView = view; 

     textView_Text = (EditText)view.findViewById(R.id.dateTextView); 
    } 

    public void setText(String text){ 
     textView_Text.setText(text); 
    } 

} 

// MainActivity

public class MainActivity extends AppCompatActivity { 

    private FragmentManager fragmentManager; 
    private FragmentTransaction fragmentTransaction; 

    private FirstFragment firstFragment; 
    private SecondFragment secondFragment; 

    private DateRegisterCallback dateRegisterCallback; 


    public WorkRegisterActivity(){ 
     fragmentManager = getFragmentManager(); 
     firstFragment = new FirstFragment(); 
     secondFragment = new SecondFragment(); 

     SecondFragmentCallback secondFragmentCallback = new SecondFragmentListener(); 
     SecondFragment.setCallback(SecondFragmentCallback); 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     changeFragment(firstFragment); 

    } 

    private void changeFragment(Fragment fragment){ 
     fragmentManager = getFragmentManager(); 
     fragmentTransaction = fragmentManager.beginTransaction(); 
     fragmentTransaction.replace(android.R.id.content, fragment); 
     fragmentTransaction.commit(); 
    } 

    private class SecondFragmentListener implements SecondFragmentCallback{ 
     @Override 
     public void callback(String stuff){ 
      changeFragment(firstFragment); 
      firstFragment.setText(stuff); 
    } 
} 

回調和其他一切工作。我已經嘗試使用Log.d並且信息由Fragment接收。但是這個觀點沒有改變。 因此,我並沒有發現它也是最佳的編寫代碼SecondFragment

我對Android Studio非常陌生,有時可以發現模式遵循真正的線性。感謝您的幫助!

回答

0

一個可能的解決方案可能不是最好的,那就是使用SharedPreferences來保存所需的文本值,然後在顯示第二個片段時,從SharedPreferences獲取文本並加載到文本視圖中。