Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我必须在方法内部使用findviewbyd命令?_Java_Android - Fatal编程技术网

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上写的内容。但是我不明白。如果我更改place
textView=(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()