2017-02-23 5 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ú"); 
... 
관련 문제