-1

Итак, я создал активность ящика навигации и некоторые фрагменты. На одном фрагменте у меня есть TextView, в котором мне нужно, чтобы показать дату, как ДД.ММ.ГГГГ мне удалось сделать это на другое приложение с помощью:Android - Показать дату в текстовом окне ошибки

//show date 
    TextView datumprikaz = (TextView)findViewById(R.id.datumprikaz); 
    Date danas = new Date(); 

    SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy"); 
    String novDatum = sdf.format(danas); 

    datumprikaz.setText(novDatum); 
//End of show date 

Но когда я использую его теперь в моем MainActivity. Java он показывает ошибку:

попытка вызвать виртуальный метод «недействительным android.widget.TextView.setText (java.lang.CharSequence)» на нулевой ссылки на объект

Это журнал ошибок, MainActivity.java и мой фрагмент.xml (игнорируйте большой код, часть даты - одна строка):

https://gist.github.com/anonymous/f19acb835b43111f576bef2791c4a28e

ответ

0
TextView datumprikaz = (TextView)findViewById(R.id.datumprikaz); 

ваш TextView datumprikaz не такое же расположение, что вы setContentView

, поэтому переменная datumprikaz является null

+0

TextView в фрагменте. Где я могу поместить код в MainActivity.java? – Ivan

0

Причина заключается в том, что ваш взгляд текст не правильно инициализирован и вот почему вы получить исключение NullPointerException. Если ваш код находится в классе фрагментов, вы должны получить TextView следующим образом:

TextView datumprikaz = (TextView)getView().findViewById(R.id.datumprikaz); 

Надеюсь, он сработает.

+0

getView красный. Он говорит Не удается разрешить метод getView() Пожалуйста, помогите – Ivan

+0

Где вы пытаетесь позвонить getView()? –

0

Я понял! Мне просто нужно было добавить код к этому фрагменту (TvrdjavaFragment в моем случае). Это код:

public class TvrdjavaFragment extends Fragment { 


public TvrdjavaFragment() { 
    // Required empty public constructor 
} 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.fragment_tvrdjava, container, false); 
    // Inflate the layout for this fragment 
    //show date 
    TextView datumprikaz = (TextView) view.findViewById(R.id.datumprikaz); 
    Date danas = new Date(); 

    SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy"); 
    String novDatum = sdf.format(danas); 

    datumprikaz.setText(novDatum); 
    //End of show date 
    return view; 
} 

Я добавил дату шоу (смотрите на тегах комментариев)

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