【问题标题】:TextView and setText from class类中的 TextView 和 setText
【发布时间】:2011-08-29 18:26:01
【问题描述】:

我知道有几个关于此的问题,但我仍然不明白。 我有一个活动

package test.example.om;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import test.example.om.Texter;

public class TextActivity extends Activity {
   /** Called when the activity is first created. */

    public String text="Helloo";
    @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       Texter myTexter = new Texter(); 
       myTexter.textTexter();


   }
    public void textSet(){
        TextView tv = (TextView) findViewById(R.id.myTextViewInXml);
           tv.setText(text);
}
}

还有一个Texter类

package test.example.om;

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

public class Texter extends Activity{
String string="Helloo";


public void textTexter(){
    TextView tv = (TextView) findViewById(R.id.myTextViewInXml);
       tv.setText(string);
}
}

LogCat 显示 NullPointerException 并且应用程序崩溃。我做错了什么,如何从另一个类而不是主活动类将文本设置为 TextView?

【问题讨论】:

  • 为什么不返回一个字符串函数并在你的主要活动中使用 setText 呢?对我来说看起来像奇怪的代码。

标签: android crash textview settext


【解决方案1】:

你正在实例化一个活动子类,你不应该这样做...... 此外,您在上下文为空时尝试 findViewById(在 Texter 类中),因为您没有经历正确的 Activity 生命周期。

为了更改文本视图的文本,只需将 textTexter 方法从 Texter 移动到 TextActivity 并调用它。 删除未使用的 Texter 活动。

package test.example.om;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import test.example.om.Texter;

public class TextActivity extends Activity {
   /** Called when the activity is first created. */

    public String text="Helloo";
    @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       TextView tv = (TextView) findViewById(R.id.myTextViewInXml);
       tv.setText(text);


   }

}

编辑:刚刚注意到你想从另一个班级做这件事。为此,只需引用要更改的文本视图并在其上设置文本

【讨论】:

    猜你喜欢
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    相关资源
    最近更新 更多