2017-02-23 8 views
0

Butterknifeがうまく機能しているフラグメントに動作していないが、私はフラグメントでそれを使用しようとしていますときに動作していない:すでにviewあなた戻すためにあなたが持っているButterknifeは私が活動にそれを使用していたときに

public class SettingsFragment extends Fragment { 
private static final String TAG = "SettingsFragment"; 

@BindView(R.id.settings_email)  TextView _settingsMail; 
@BindView(R.id.settings_password) TextView _passwordMail; 
@BindView(R.id.settings_token)  TextView _tokenMail; 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    //returning our layout file 
    final View view = inflater.inflate(R.layout.fragment_3_settings, container, false); 
    ButterKnife.bind(this, view); 

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this.getContext()); 
    String email = prefs.getString("email", null); 
    String passwd = prefs.getString("password", null); 
    String token = prefs.getString("token", null); 
    _settingsMail.setText(email); 
    _passwordMail.setText(passwd); 
    _tokenMail.setText(token); 
    return inflater.inflate(R.layout.fragment_3_settings, container, false); 
} 
+0

なぜあなたが戻ってきているリターンinflater.inflate(R.layout.fragment_3_settings、コンテナ、偽);これは単にビューを返すべきではありませんか? –

答えて

5

もう一度別のビューを膨張させないでください。

の代わりに:

return inflater.inflate(...); 

これを行う:

return view; 
1

ビューが完全にレイアウトを変更する前に構築されています知っているまで待ってみてください。

@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    //returning our layout file 
    final View view = inflater.inflate(R.layout.fragment_3_settings, container, false); 
    ButterKnife.bind(this, view); 
    return view; 
} 

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this.getContext()); 
    String email = prefs.getString("email", null); 
    String passwd = prefs.getString("password", null); 
    String token = prefs.getString("token", null); 

    _settingsMail.setText(email); 
    _passwordMail.setText(passwd); 
    _tokenMail.setText(token); 
} 
0

私にとってはこの作品:

... 

@BindView(R.id.text_input) 
TextView text_input; 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_home, container, false); 
    ButterKnife.bind(this, view); 
    return view; 
} 

@Override 
public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 

    text_input.setText("Hello Lima, Perú"); 
... 
関連する問題