[英]Can't call an initializer method in Android Studio
我试图调用方法fillList()
来填充ArrayList
。 但是它说
方法声明无效,需要返回类型。
无效的方法虽然不需要返回类型。 我的学期班仅包含setter和getter。
public class MainActivity extends AppCompatActivity {
List<String> termList = new ArrayList<>();
fillList();
//Spinner
Spinner spin = findViewById(R.id.spinner);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
private void fillList(){
termList.clear();
//Create term and fill into arraylist
Semester x = new Semester();
x.setSemester("Fall");
termList.add(x.getSemester());
x = new Semester();
x.setSemester("Winter");
termList.add(x.getSemester());
x = new Semester();
x.setSemester("Spring");
termList.add(x.getSemester());
}
}
onCreate
方法中调用fillList
方法。 findViewById
应该在setContentView
之后调用,并且必须在创建Activity
时使用。 所以换成这个。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fillList();
Spinner spin = findViewById(R.id.spinner);
}
注意
全局变量可以直接在类中使用,但是该方法必须在该方法内使用
创建活动后必须使用·findViewById·方法,该方法必须在活动生命周期方法内。
您正在类的声明部分中调用方法。 除非它返回一些值并且您将其分配给变量之一,否则您将无法执行此操作。
要使用返回类型为void的方法进行调用,或者不使用返回值而直接调用方法,则应在诸如onCreate
其他方法中调用它
或者您可以使用初始化程序块!
public class MainActivity extends AppCompatActivity {
List< String > termList = new ArrayList<>();
Spinner spin;
{
fillList();
}
//other declarations and methods.
另外,只有在调用setContentView
方法之后,才能调用findViewById
方法。
因此在onCreate内,使用:
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spin = findViewById(R.id.spinner);
public class MainActivity extends AppCompatActivity {
List<String> termList;
Spinner spin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
termList = new ArrayList<>();
spin = findViewById(R.id.spinner);
fillList();
}
private void fillList(){
termList.clear();
//Create term and fill into arraylist
Semester x = new Semester();
x.setSemester("Fall");
termList.add(x.getSemester());
x = new Semester();
x.setSemester("Winter");
termList.add(x.getSemester());
x = new Semester();
x.setSemester("Spring");
termList.add(x.getSemester());
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.