gpt4 book ai didi

android - 类中的 TextView 和 setText

转载 作者:行者123 更新时间:2023-11-29 18:17:49 27 4
gpt4 key购买 nike

我知道有几个关于此的问题,但我还是不明白。我有 Activity

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 并且应用程序崩溃。我做错了什么以及如何从主 Activity 类以外的另一个类将 Text 设置为 TextView?

最佳答案

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

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

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


}

}

编辑:刚注意到您想从另一个类(class)开始。为此,只需提供对要更改的 TextView 的引用并在其上设置文本即可

关于android - 类中的 TextView 和 setText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7234218/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com