Java 为什么我必须在方法内部使用findviewbyd命令?
我正在从事交流活动 这是我的主要活动课:Java 为什么我必须在方法内部使用findviewbyd命令?,java,android,Java,Android,我正在从事交流活动 这是我的主要活动课: public class Main2Activity extends AppCompatActivity { TextView textView ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2);
public class Main2Activity extends AppCompatActivity {
TextView textView ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
textView =(TextView) findViewById(R.id.textView2);
Intent intent = getIntent();
String received = intent.getStringExtra("input");
textView.setText(received);
}
protected void changeActivity(View view){
Intent intent = new Intent(getApplicationContext(),MainActivity.class);
startActivity(intent);
}}
我正在mainActivity中使用editText
。在editText
protected void changeActivity(View view){
userInput = findViewById(R.id.editText);
Intent intent = new Intent(getApplicationContext(),Main2Activity.class);
intent.putExtra("input",userInput.getText().toString());
startActivity(intent);
}
Mainactivity按钮命令,按此按钮并发送我在editText上写的内容。但是我不明白。如果我更改placetextView=(textView)findViewById(R.id.textView2)代码>此代码将退出方法。我正在课堂上使用它。像这样
public class Main2Activity extends AppCompatActivity {
TextView textView =(TextView) findViewById(R.id.textView2);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Intent intent = getIntent();
String received = intent.getStringExtra("input");
textView.setText(received);
}
protected void changeActivity(View view){
Intent intent = new Intent(getApplicationContext(),MainActivity.class);
startActivity(intent);
}}
应用程序在emulator上不工作。我在editText
上写了一些东西,然后单击按钮,然后应用程序出错。我不明白。现实(对于真正的智能手机而不是模拟器)是真的吗?İf现实是行不通的。为什么我错了?您可以在setContentView()之后调用findViewById()
因为android在setContentView()中加载xml
然后,您可以使用findViewById()