findViewById() not working in a not MainActivity class

后端 未结 4 1453
耶瑟儿~
耶瑟儿~ 2020-12-13 18:46

I have a text view in my Lyout and I would like to set some text to this textview. This should be made in a class which is not a MainActivity class.

The problem is t

4条回答
  •  生来不讨喜
    2020-12-13 19:20

    Calling findViewById() on the Activity object will only work if the current Activity layout is set by setContentView. If you add a layout through some other means, then you need the View object of the layout and call findViewById() on it.

    View v = inflater.inflate(id_number_of_layout); # such as R.layout.activity_main
    View innerView = v.findViewById(id_number_of_view_inside_v);
    

    If the layout is supposed to be the main layout of the activity, then do this:

    public class MyActivity extends Activity{
      TextView emailTextView; 
    
      @Override
      public void onCreate(Bundle savedInstanceState){
         super.onCreate(savedInstanceState);
         setContentView(id_number_of_layout);
         emailTextView = (TextView) findViewById(R.id.EmailTextView);
         // ... whatever other set up you need to do ...
      }
    
      public void getUserInformation() {
         // .... regular code ... 
      }
    }
    

提交回复
热议问题