好的,我在这里有一个非常简单的Android程序的材料。我决定从简单但相对有用的东西开始。最终,我希望有一个存储和显示学习卡的应用程序。我觉得无法超越文本视图是不好的兆头。我研究了几十个示例,并研究了新用户对SetText()遇到的常见问题,但无济于事。这是代码的相关行:

从我的.java文件:

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

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

TextView tv1 = (TextView) findViewById(R.id.TextView1);
tv1.setText("New text");

.... 等等

Eclipse正在标记包含“ setText”的行,并给我以下句法错误:

令牌上的语法错误,放错位置的构造//强调TV1之后的时期

令牌上的语法错误““新文本”,删除此令牌

有帮助吗?

解决方案

将文本视图的初始化移至 onCreate.

TextView tv1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv1 = (TextView) findViewById(R.id.TextView1); 
// initialize after settting layout to activtiy
tv1.setText("New text");
// the above statement must be within a method 
}

您的初始化 textview 在任何方法之外。将布局设置为活动后,您应仅在文本视图中初始化文本视图。因此TextView在 onCreate. 。这个 tv1.setText("New text") 语句必须在方法内。

初始化您的 textview 内部活动 onCreate 更好。

其他提示

public class MainActivity extends Activity {

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

    TextView tv1 = (TextView) findViewById(R.id.TextView1);
    tv1.setText("New text");

}

将代码放入OnCreate方法中。

// try this
public class MainActivity extends Activity {
        TextView tv1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            tv1 = (TextView) findViewById(R.id.TextView1);
            tv1.setText("New text");
        }
}
TextView tv1 = (TextView) findViewById(R.id.TextView1);
tv1.setText("New text");

始终在诸如ongreate,on Resume等方法中使用这种东西

just because you initailize textview locally and set the textview 
outside onCreate method,you got this error.define textview globally solve ur issue;

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);
}

tv1 = (TextView) findViewById(R.id.TextView1);
tv1.setText("New text");
}

将TextView Object移动到OnCreate()方法中,然后在其上调用SetText方法。这是您所需的代码。

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
   TextView tv1 = (TextView) findViewById(R.id.TextView1);
    tv1.setText("New text");
    } 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top