【问题标题】:TextView doesn't show the required textTextView 不显示所需的文本
【发布时间】:2015-05-16 15:17:37
【问题描述】:

我的MainActivity 类有一个如果检查是否为真,它会启动一个新的Activity,它将TextView 的文本设置为我想要的。

MainActivity:

 public static int caseA = 1;

 if(caseA) {
     Intent i = new Intent(Timer.this, WorkTimerNotification.class);
     startActivity(i);
 }

然后它转到新的Activity,它应该检查caseA 的值。

WorkTimerNotification:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_work_timer_notification);
    TextView timerMetric = (TextView)findViewById(R.id.tester_texter);
    if(MainActivity.caseA) {
            timerMetric.setText("min");
        }

问题:它不会改变文本。另外,假设我在 mainactivity 中有许多其他 if 语句,例如:

 if(caseB) {}
 if(caseC) {}
 //and so on..

我将如何进行检查?更重要的是,我怎样才能让这个 caseA 检查工作。

【问题讨论】:

    标签: java android textview android-viewgroup


    【解决方案1】:

    您需要在onCreate()中拨打findViewById()

    private TextView timerMetric;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_work_timer_notification);
    
        timerMetric = (TextView)findViewById(R.id.tester_texter);
    
        if(caseA) {
            timerMetric.setText("min");
        }
    }
    

    现在您在调用setContentView() 之前调用它,在视图层次结构生成之前。因此,您的代码会失败。

    【讨论】:

    • private TextView timerMetric 是一个未使用的变量。为什么要这样称呼它?
    • 如何未使用 ??你不是在 onCreate() 中使用它吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 2015-12-19
    • 1970-01-01
    相关资源
    最近更新 更多