Java Can';无法从其他活动更新TextView
我有一个带有文本视图的活动,需要从第二个活动更新该活动。 我可以将文本视图数据传递给第二个活动ok,但当我尝试更新该文本视图时 在第二个活动中,它崩溃。我的代码: 第一个活动(其中TextView在my xml中定义): 然后在我的第二个活动中:Java Can';无法从其他活动更新TextView,java,android,textview,Java,Android,Textview,我有一个带有文本视图的活动,需要从第二个活动更新该活动。 我可以将文本视图数据传递给第二个活动ok,但当我尝试更新该文本视图时 在第二个活动中,它崩溃。我的代码: 第一个活动(其中TextView在my xml中定义): 然后在我的第二个活动中: Bundle bundle = getIntent().getExtras(); hometext = bundle.getString("homescore_value"); // this works and displays the correc
Bundle bundle = getIntent().getExtras();
hometext = bundle.getString("homescore_value"); // this works and displays the correct String from 1st activity,
但当我尝试以文本视图的形式拉入时,它崩溃了:
// other code snipped
int homescore = 0;
String Home_nickname = "HOME ";
TextView homestext = (TextView) bundle.get("homescore_value");
hometext.setText(Home_nickname +": "+homescore );
请帮助。您正在尝试将字符串作为文本视图(您正在从第一个活动的意图中设置字符串)。您正在尝试将字符串作为文本视图(您正在从第一个活动的意图中设置字符串)。您正在尝试将字符串
转换为文本视图
。崩溃的代码相当于:
String text = bundle.get("homescore_value"); //this is ok
TextView textView = (TextView)text; //this is bad
你应该改为:
String text = bundle.get("homescore_value");
TextView textView = (TextView)findViewById(R.id.yourTextViewId);
textView.setText(text);
您正在尝试将字符串
转换为文本视图
。崩溃的代码相当于:
String text = bundle.get("homescore_value"); //this is ok
TextView textView = (TextView)text; //this is bad
你应该改为:
String text = bundle.get("homescore_value");
TextView textView = (TextView)findViewById(R.id.yourTextViewId);
textView.setText(text);
这一行在这里:
intent.putExtra("homescore_value", ((TextView)findViewById(R.id.score_home)).getText());
正在随意图而不是文本视图附加字符串
您必须在第二个活动中通过在layout.xml中声明新的TextView,或通过编程将其放置在布局中,从而使其膨胀。这一行:
intent.putExtra("homescore_value", ((TextView)findViewById(R.id.score_home)).getText());
正在随意图而不是文本视图附加字符串
您必须通过在layout.xml中声明新的TextView,或通过编程将其放置在布局中,从而在第二个活动中膨胀新的TextView。对我来说,解决此问题的部分方法是将接收字符串变量设置为null
,如下所示:
public String param1new = null;
public String param2new= null;
我的问题是,我试图在几个文本视图上设置背景色,而此时只设置了第一个背景色。解决了部分问题的方法是将接收字符串变量设置为null
,如下所示:
public String param1new = null;
public String param2new= null;
我的问题是,我试图在几个文本视图上设置背景色,而此时只设置了第一个背景色。请粘贴LogCat例外请粘贴LogCat例外String=(String)bundle.get(“homescore_值”);TextView TextView=(TextView)findViewById(R.id.score_home);//textView.setText(文本);-->当我使用此行时崩溃如何在第2个活动的第1个活动中为TextView充气?我认为这就是使用putExtra的原因。这样第二个活动就可以识别TextView是什么了?我想我错过了一些东西。谢谢您的帮助。请将TextView
视为文本的占位符,而不是实际文本。出于某种目的,您会注意到,您实际上无法发送textView,因为它不是基本数据类型或实现Parcelable
。因此,基本上,当您调用textView.getText()
时,您可以获取其中的字符串,并通过intent发送该字符串。所以TextView
只是一个用来放置字符串的bucket/占位符。您需要设置另一个TextView
,以便第二个布局知道将其放置在何处。希望这对您有所帮助:)好的,我明白您的意思,但我的目标是当第二个活动结束时(使用finish():)命令,我的第一个活动将继续,这就是我需要更新文本的地方。不知何故,我需要它自动刷新。textview数据来自存储的共享首选项,因此这不是问题,只需在第二个活动结束后自动更新视图即可。再次感谢您的解释。您可以做的是在活动在onPause()
中关闭之前再次将该文本保存到共享首选项中。然后,当它返回到前一个活动时,它可以从共享首选项中获取,就像它从第一个timeString text=(String)bundle.get(“homescore_value”)中获取一样;TextView TextView=(TextView)findViewById(R.id.score_home);//textView.setText(文本);-->当我使用此行时崩溃如何在第2个活动的第1个活动中为TextView充气?我认为这就是使用putExtra的原因。这样第二个活动就可以识别TextView是什么了?我想我错过了一些东西。谢谢您的帮助。请将TextView
视为文本的占位符,而不是实际文本。出于某种目的,您会注意到,您实际上无法发送textView,因为它不是基本数据类型或实现Parcelable
。因此,基本上,当您调用textView.getText()
时,您可以获取其中的字符串,并通过intent发送该字符串。所以TextView
只是一个用来放置字符串的bucket/占位符。您需要设置另一个TextView
,以便第二个布局知道将其放置在何处。希望这对您有所帮助:)好的,我明白您的意思,但我的目标是当第二个活动结束时(使用finish():)命令,我的第一个活动将继续,这就是我需要更新文本的地方。不知何故,我需要它自动刷新。textview数据来自存储的共享首选项,因此这不是问题,只需在第二个活动结束后自动更新视图即可。再次感谢您的解释。您可以做的是在活动在onPause()
中关闭之前再次将该文本保存到共享首选项中。然后,当它返回到前一个活动时,它可以从共享首选项中获得,就像第三行第一次导致崩溃时一样:textView.setText(text);您需要更改R.id.yourTextViewId
以更正活动版面中文本视图的id。我已更改R.id.yourTextViewId以匹配我在第一个活动版面中的id。但是我在我的第二个活动中使用了这个,它是如何识别的,因为第二个活动有一个完全不同的布局?在第二个布局(第二个活动的布局)中,您应该在您喜欢的任何位置包含带有android:id=“@+id/youtTextViewId
的TextView。实际上,我不需要在第二个活动中更新TextView,该活动只计算v