Почему представление не имеет значения вне onCreateView - PullRequest
0 голосов
/ 20 июня 2020

Я объявляю переменную представления в классе и присваиваю ее значение в OnCreateView, используя findviewbyid, как обычно, и я использую интерфейс для взаимодействия между этим фрагментом и другим, когда другой фрагмент взаимодействует с этим фрагментом с помощью метода, называемого "ask" , в котором вызывается локальная переменная, я обнаружил, что переменная null Вот переменная

private TextInputLayout questionLayout; 

Здесь я присваиваю ее значение

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View v = inflater.inflate(R.layout.fragment_article_, container, false);
    Button ask = v.findViewById(R.id.ask);
    questionLayout = v.findViewById(R.id.QuestionInputLayoutArticle);
    if(questionLayout == null){
        Log.d("ORDERARTICLE","QUESTION");
    }
    Log.d("ORDERORDER","CreateView");
    return v;
}

Вот метод

  @Override
public boolean ask() {
    Log.d("ORDERORDER","ASK");
    if(questionLayout == null){
        Log.d("ORDERARTICLE","QUESTION");
    }
    if(questionLayout.getEditText().getText().toString().isEmpty()){
        return false;
    }else {
        FirebaseFirestore Fs = FirebaseFirestore.getInstance();
        Map<String, String> QuestionMap = new HashMap<>();
        QuestionMap.put("Head", questionLayout.getEditText().getText().toString());
        QuestionMap.put("Type", "Article");
        Fs.collection("Questions").document().set(QuestionMap);
        return true;
    }

}

Вы можете заметить, что я веду журнал, чтобы убедиться, что значение присваивается перед вызовом переменной и оно присваивается перед вызовом действительно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...