Android 扩展布局并更改textview的值
我面临一个问题。我不知道这是怎么回事,或者我错过了什么Android 扩展布局并更改textview的值,android,Android,我面临一个问题。我不知道这是怎么回事,或者我错过了什么 我想通过…从其他活动更改textview的文本 1.扩大其他活动的布局。 2.获取文本视图 3.在textview上调用setText() 我这样做了,但当我切换回使用该布局的活动时,文本与之前相同。 因此,我冒昧地检查了一个新的项目,在mainactivity上只有“hello world”文本视图,在另一个活动上更改了“hello world”文本视图的文本。 但我得到了同样的结果。文本没有改变。它甚至没有给我任何例外。应用程序正常运行
我想通过…
从其他活动更改textview的文本 1.扩大其他活动的布局。
2.获取文本视图
3.在textview上调用setText()
我这样做了,但当我切换回使用该布局的活动时,文本与之前相同。
因此,我冒昧地检查了一个新的项目,在mainactivity上只有“hello world”文本视图,在另一个活动上更改了“hello world”文本视图的文本。
但我得到了同样的结果。文本没有改变。它甚至没有给我任何例外。应用程序正常运行。我不明白为什么会发生这种事?
代码
MainActivity.java
公共类MainActivity扩展活动
{
}
MonActivity.java-活动#2公共类MonActivity扩展活动
{
}
您不能(您可以通过静态视图定义执行此操作,但不应执行!)直接从另一个活动更改活动的视图值/属性。使用startActivityForResult并在ActivityResult方法上传递并获取更改的/新的值
我不在这里分享任何例子或链接。您可以找到许多示例,只需搜索startActivityForResult;)
编辑:如果在活动中展开布局,它将创建视图的新实例。因此,对充气布局所做的更改将仅应用于该实例
我希望我的评论能对您有所帮助。您不能(您可以通过静态视图定义来做到这一点,但不应该这么做!)直接从另一个活动更改活动的视图值/属性。使用startActivityForResult并在ActivityResult方法上传递并获取更改的/新的值
我不在这里分享任何例子或链接。您可以找到许多示例,只需搜索startActivityForResult;)
编辑:如果在活动中展开布局,它将创建视图的新实例。因此,对充气布局所做的更改将仅应用于该实例
我希望我的评论能对您有所帮助。好的。我知道如何修改课文。笑:P。但我想知道为什么我不能这样做。这在您的答案编辑中得到了回答。谢谢。那你为什么不投票给帮助你解决问题的aegan,只要支持他的答案就行了。@BetteDevine我已经接受了他的答案。我也会那样做好啊我知道如何修改课文。笑:P。但我想知道为什么我不能这样做。这在您的答案编辑中得到了回答。谢谢。那你为什么不投票给帮助你解决问题的aegan,只要支持他的答案就行了。@BetteDevine我已经接受了他的答案。我也会那样做
public static TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.lolll);
tv.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
startActivity(new Intent(MainActivity.this, MonActivity.class));
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mon);
LayoutInflater inf = getLayoutInflater();
RelativeLayout rel = (RelativeLayout) inf.inflate(R.layout.activity_main, null);
TextView tv = (TextView) rel.findViewById(R.id.lolll);
tv.setText("finger crossed");
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.mon, menu);
return true;
}