2017-01-01 15 views
0

これを実装すると、以下のエラーが発生します。私が理解していないことは、EditText入力フィールドはどのように静的コンテンツですか?私がここで欠けているかもしれない非常に基本的なものかもしれません。このテキストフィールドの静的コンテンツはどのように編集しますか?

Error:(28, 32) error: non-static method findViewById(int) cannot be referenced from a static context 

コード:

package com.example.kheriaa.meme_fragments_v1; 

    import android.app.Fragment; 
    import android.os.Bundle; 
    import android.support.annotation.Nullable; 
    import android.view.LayoutInflater; 
    import android.view.View; 
    import android.view.ViewGroup; 
    import android.widget.EditText; 


    public class TopSectionFragment extends Fragment { 

     private EditText TopText; 
     private EditText BottomText ; 


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


      View v = inflater.inflate(R.layout.frags_layout, container, false); 

      TopText = (EditText) View.findViewById(R.id.TopText); 

      //return super.onCreateView(inflater, container, savedInstanceState); 
      return v; 
     } 
    } 

答えて

2

はこれを試してみてください。代わりに

TopText = (EditText) View.findViewById(R.id.TopText); 

TopText = (EditText) v.findViewById(R.id.TopText); 

FragmentクラスはfindViewById()メソッドを持っていません。しかし、Activityはそうです。コンパイラは、このFragmentがアクティビティの静的内部クラスであるため、そのメソッドを呼び出そうとしていると不平を言っています。あなたはフラグメントレイアウトからビューを取得しようとしている場合は、Activityレイアウトからビューを取得しようとしている場合は

、その後、その後、getActivity().findViewById()

+0

でこれTopText = (EditText) View.findViewById(R.id.TopText);を交換しては、このですか?見ていない? – supersayan

+0

@supersayanはい、Viewのインスタンスがvであるため、v.findViewById(R.id.TopText)を使用する必要があります。 –

+0

@supersayan私は説明を追加しました – rafsanahmad007

0

あなたにそれを変更し、rootView.findViewById().

findViewById()を変更onActivityCreatedをオーバーライドしてから、

TopText =(EditText)getActivity()。findViewById(R.id.TopText);を使用する必要があります。

BTW rafsanahmad007は彼の答えで完全に正しいです。フラグメントとアクティビティのライフサイクルが分割されているので、onActivityCreatedからやってください。onCreateViewはonActivityCreatedの前に呼び出されるかもしれません。私のビューオブジェクトは、 "V" であるため、

0

TopText = (EditText) v.findViewById(R.id.TopText);

関連する問題