Java Android textview-我无法启动它

Java Android textview-我无法启动它,java,android,textview,Java,Android,Textview,嗨,我正在尝试构建我的第一个android项目。我是一名优秀的程序员,适用于微控制器、php、bash等 然而,这种java语法使我们想要爆发 package com.example.test; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.widget.TextView; public class MainActivity extends Acti

嗨,我正在尝试构建我的第一个android项目。我是一名优秀的程序员,适用于微控制器、php、bash等

然而,这种java语法使我们想要爆发

package com.example.test;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView tv1;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

TextView tv1 = (TextView) findViewById(R.id.textView1);
tv1.setText("Text2");

}


我在网上查了很多例子,但看起来我没法继续

tv1.setText(“Text2”)总是出现语法错误

我在哪里出错了?

换成

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // initialize after setContentView
    tv1 = (TextView) findViewById(R.id.textView1);
    tv1.setText("Text2"); // should be within a method
}

这是因为您正在放置

TextView tv1 = (TextView) findViewById(R.id.textView1);
tv1.setText("Text2");

在MainActivity类中的任何方法之外。只需将这两行放在onCreate()方法中,setContentView()之后。

当您用Java编写代码时,每行代码都需要放在一个方法中(变量声明除外)。要初始化
TextView
的代码不在导致错误的方法中

将代码更改为:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView tv1 = (TextView) findViewById(R.id.textView1);
    tv1.setText("Text2");
}
这导致TextView的初始化在onCreate方法内完成,该方法是在创建视图时调用的方法

如果以后还想使用TextView,请将tv1的变量声明移到方法之外

private TextView tv1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tv1 = (TextView) findViewById(R.id.textView1);
    tv1.setText("Text2");
}
private TextView tv1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tv1 = (TextView) findViewById(R.id.textView1);
    tv1.setText("Text2");
}