【问题标题】:Android setText() Syntax Error On Tokens令牌上的 Android setText() 语法错误
【发布时间】:2013-11-08 07:19:43
【问题描述】:

好的,我已经准备好制作一个非常简单的 Android 程序了。我决定从一些简单但也相对有用的东西开始。最终,我希望有一个存储和显示学习卡的应用程序。我觉得无法通过 TextView 是不祥之兆。我查看了几十个示例并研究了新用户使用 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”的行并给我以下语法错误:

token(s) 上的语法错误,错位的构造//强调 tv1 之后的句点

标记“新文本”的语法错误,删除此标记

【问题讨论】:

  • 将此代码放入 oncreate 方法中。 TextView tv1 = (TextView) findViewById(R.id.TextView1); tv1.setText("新文本");
  • onCreate方法中写入TextView
  • 感谢大家的快速回复。实际上,我自己也得出了同样的结论。我之前曾尝试将第一行移到那里,但不是第二行。我想这让我想到了另一个问题。最终,我计划每次将一张新卡带到牌组的最前面时更新文本视图。但是,现在看到我不能简单地调用 setText() 任何我想要的地方,我以后可以使用它来更新卡片显示,还是我完全错误的方式?
  • 没关系,再次找到我自己的解决方案。我想它总是在一个方法中,因为它需要一个手势检测器来激活。不过,我非常感谢你们所有人。我认为,Android 中 Java 的整个基础对我来说有点到位。公平地说,如果我没有选择半夜学习一门新语言,我可能会做得更好。再次感谢你们所有非常快速的答案。
  • 真诚的建议大家去了解一下java的概念和编程...

标签: java android settext


【解决方案1】:

将textview的初始化移动到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 更好。

【讨论】:

  • 你的答案是正确的,但没有解释为什么他在令牌上出现语法错误
【解决方案2】:
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 方法中。

【讨论】:

    【解决方案3】:
    // 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");
            }
    }
    

    【讨论】:

      【解决方案4】:
      TextView tv1 = (TextView) findViewById(R.id.TextView1);
      tv1.setText("New text");
      

      总是在 onCreate ,onresume 等方法中使用这种东西

      【讨论】:

        【解决方案5】:
        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");
        }
        

        【讨论】:

        • 这是完全错误的。没有回答问题。您是否尝试过您的建议?
        【解决方案6】:

        将 TextView 对象移动到 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");
            } 
        

        【讨论】:

          猜你喜欢
          • 2014-10-20
          • 1970-01-01
          • 2013-07-16
          • 2013-03-27
          • 1970-01-01
          • 1970-01-01
          • 2015-02-24
          • 1970-01-01
          相关资源
          最近更新 更多