2016-12-18 2 views
-1

У меня есть приложение для Android с фрагментом на основной деятельности. Проблема в том, что я не могу вызывать объекты TextView из фрагмента.Android view.findViewById (R.id ....) nullpointer исключение в фрагменте

текущий код

public class MainFragment extends Fragment { 

private View view; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_main, container, false); 

    this.view = view; 
    //populateListView(); 
    //registerClickCallback(); 

    TextView text = (TextView) view.findViewById(R.id.main_txt_name); 

    if(view == null){System.out.println("view is null");} //view is not null 
    if(text == null){System.out.println("text is null");} //text is null! 

    text.setText("text changed"); //nullpointer exception 

    return view; 
} 

Объект вид не является нулевым, но view.findViewById(R.id.main_txt_name); возвращает null. Сообщение об ошибке

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

в строке

"text.setText("text changed"); //nullpointer exception" 

если я изменить вид на getActivity() это isthe же проблема.

Кто-нибудь знает, как получить layout элементов?

+1

Что вы сделали хорошо, без дополнительной информации. Пожалуйста, покажите файл 'fragment_main' xml. Это очень хорошо документировано, почему findViewById возвращает null –

ответ

0

Проверьте свой R.id.main_txt_name в вашем R.layout.fragment_main xml. Может быть, ваш id не является макетом xml.

Смежные вопросы