2016-10-31 6 views
-2

私は同様の問題を抱えていましたが、アクセスしようとするとクラッシュしました(またはfindByID)、間違った方法でテキストビューを入れました。今は1つしかありませんでした。残念ながら、アプリケーションが停止しました。この作業をどのようにして作成できますか?

TextView n = (TextView) findViewById(R.id.nama); 

しかし、コンパイラはそれが方法を見つけることができないと言って私にエラーを与えた:

public class InfoFragment extends Fragment { 


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


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

     TextView n = (TextView) getView().findViewById(R.id.nama); 
     n.setText("Some String"); 

     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.fragment_info, container, false); 
    } 

} 

はもともと、私はこのように見ている行が持っていた:、方法onCreateViewと私のアプリがクラッシュしfindViewByIdなので、調査の結果、getView()を追加する必要があることがわかりました。エラーが発生しました赤、しかし、今、アプリはクラッシュ、任意のアイデアですか?

+0

基本的に、あなたはあなたの 'Fragment'のビューを膨らませていません。ビューを拡張するヒントについては、https://developer.android.com/guide/components/fragments.html#UIを参照してください。 –

答えて

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

    TextView n = (TextView) view.findViewById(R.id.nama); 
    n.setText("Some String"); 

    return view; 
} 

あなたは、コードの一部ではまだビューを持っていません。それを最初に膨らませ、後に使う。

+0

助けてくれてありがとう、助けてくれた – aero

+0

回答を正しいものとしてマークしてください。 – Divers

+0

7分。 、 します – aero

1

は、あなたがのTextViewを見つけるためにそれを使用することができ、最初のレイアウトを膨らま:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_info, container, false); 
    TextView n = (TextView) rootView.findViewById(R.id.nama); 
    n.setText("Some String"); 

    return rootView; 
} 
+0

助けてくれてありがとう – aero

関連する問題