質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

3回答

7832閲覧

setTextエラーテキスト表示でエラー

sakuma_yujin

総合スコア27

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2017/08/01 01:31

###前提・実現したいこと
TextViewにテキストを表示したいのですがエラーが出てうまくいきません
setTextでエラーが出ます

###発生している問題・エラーメッセージ
void android.widget.TextView.setText(java.lang.CharSequence)

--------- beginning of crash 08-01 10:20:56.417 28620-28620/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.syoribuuser.firstfragment, PID: 28620 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference at com.example.syoribuuser.firstfragment.Mainpage.Fragment0.onCreateView(Fragment0.java:66)

###該当のソースコード

java

1package com.example.syoribuuser.firstfragment.Mainpage; 2 3 4import android.annotation.TargetApi; 5import android.app.SearchManager; 6import android.content.Intent; 7import android.content.SharedPreferences; 8import android.icu.text.SimpleDateFormat; 9import android.os.Bundle; 10 11import android.support.v4.app.AppLaunchChecker; 12import android.support.v4.app.Fragment; 13import android.text.SpannableStringBuilder; 14import android.text.format.DateFormat; 15import android.util.Log; 16import android.view.KeyEvent; 17import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; 18import android.webkit.WebResourceError; 19import android.webkit.WebResourceRequest; 20import android.webkit.WebSettings; 21import android.webkit.WebView; 22import android.webkit.WebViewClient; 23import android.widget.Button; 24import android.widget.EditText; 25import android.widget.ImageButton; 26import android.widget.TextView; 27import android.widget.Toast; 28 29import com.example.syoribuuser.firstfragment.Firstin.MainActivity; 30import com.example.syoribuuser.firstfragment.R; 31import com.example.syoribuuser.firstfragment.Twitter.TweetActivity; 32 33import java.util.Calendar; 34import java.util.Date; 35 36import static android.content.Context.MODE_PRIVATE; 37 38 39public class Fragment0 extends Fragment { 40 41 TextView textView; 42 private WebView webView; 43 private String accessUrl = "https://google.com/"; 44 TextView textViewd; 45 private Boolean surface=true; 46 @Override 47 48 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 49 50 51 View v = inflater.inflate(R.layout.activity_fragment0, null); 52 53 54 surface=true; 55 v.setFocusableInTouchMode(true); 56 v.setOnKeyListener(new View.OnKeyListener() { 57 @Override 58 public boolean onKey(View v, int keyCode, KeyEvent event) { 59 if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) { 60 61 return true; 62 } 63 return false; 64 } 65 }); 66 67 68 final Calendar calendar = Calendar.getInstance(); 69 70 final int year = calendar.get(Calendar.YEAR); 71 final int month = calendar.get(Calendar.MONTH); 72 final int day = calendar.get(Calendar.DAY_OF_MONTH); 73 final int hour = calendar.get(Calendar.HOUR_OF_DAY); 74 final int minute = calendar.get(Calendar.MINUTE); 75 final int second = calendar.get(Calendar.SECOND); 76 final int ms = calendar.get(Calendar.MILLISECOND); 77 78 TextView dy =(TextView) getActivity().findViewById(R.id.mayday); 79 String gy=""; 80 Log.d("debug","h"); 81 gy=(year+"年"+month+"月"+day+"日"+hour+"時"+minute+"分"+second+"秒"+ms); 82 Log.d("debug",gy); 83 dy.setText("f"); 84 dy.setText(gy); 85 Log.d("debug","f"); 86 87 return v; 88 89 } 90 91 92} 93 94 95 96

xml

1<?xml version="1.0" encoding="utf-8"?> 2 3<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 4 xmlns:app="http://schemas.android.com/apk/res-auto" 5 xmlns:tools="http://schemas.android.com/tools" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent" 8 tools:context="com.example.syoribuuser.firstfragment.Mainpage.Fragment0"> 9 10 11 <TextView 12 android:id="@+id/mayday" 13 android:layout_width="wrap_content" 14 android:layout_height="wrap_content" 15 android:textSize="30sp" 16 android:text="TextView" 17 android:layout_alignBottom="@+id/imageView" 18 android:layout_centerHorizontal="true" 19 android:layout_marginBottom="25dp" /> 20 21 22</RelativeLayout> 23 24

idの変更

###補足情報(言語/FW/ツール等のバージョンなど)
androidstudio
android
java
xml

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

java

1TextView dy =(TextView) getActivity().findViewById(R.id.mayday);

ここの変数dyでnullが返されていることが原因によるエラーですね
FragmentのonCreateViewではActivityに取り付けるViewを返すためのメソッドなのでActivityからViewを取得できません

java

1View v = inflater.inflate(R.layout.activity_fragment0, null);

で取り付けるViewを作成しているので

java

1TextView dy =(TextView) v.findViewById(R.id.mayday);

で取得できると思います

投稿2017/08/01 03:24

nosan

総合スコア47

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakuma_yujin

2017/08/01 06:43

無事に動きました。ありがとうございます!
guest

0

あまり良い回答ではない気がしますが、以下のように記述することで onCreateView() 中に記載することも可能です。

java

1View v = inflater.inflate(R.layout.activity_fragment0, null); 2TextView dy =(TextView) v.findViewById(R.id.mayday);

投稿2017/08/01 02:04

Yosuke-Kawakami

総合スコア123

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

onCreateView で処理するのはよくありません。
onActivityCreated 以降で作業するべき。


追記
詳しい説明は諦めました。僕には高尚すぎます。詳しい方のご助力に期待してください。

onCreateView() では View を返して画面を確定するのですが、その中で確定する前に findViewById を利用しても適切に処理することができません。

以下の動作の差異を確認してください。

java

1View v = inflater.inflate(R.layout.activity_fragment0, null); 2TextView dy =(TextView) v.findViewById(R.id.mayday); 3 4// これは null になります 5// TextView dy =(TextView) getActivity().findViewById(R.id.mayday);

投稿2017/08/01 01:38

編集2017/08/01 03:03
Yosuke-Kawakami

総合スコア123

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問