当我从另一个活动按下按钮时,我在制作Textview更改文本时遇到问题,该按钮在与其自己相同的活动中工作,但是当我告诉它从另一个活动更改文本时它会关闭我的应用程序活动,我的代码看起来像这样:
这是我主要活动的按钮代码:
go = (Button)findViewById(R.id.go);
go.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
InventoryActivity.fire.setText("1 fire");
}
});
这是我希望更改TextView的活动代码:
public class InventoryActivity extends Activity
{
public static TextView fire;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inventory);
fire = (TextView) findViewById(R.id.fire);
}
}
好的再次感谢
答案 0 :(得分:3)
不幸的是,当当前膨胀的布局来自第二个活动时,您将无法从另一个活动中的一个活动访问视图对象。 More info here
我建议的方法:假设InventoryActivity将启动您的SecondActivity,请在InventoryActivity中使用startActivityForResult()
和onActivityResult()
。在第二个活动中,使用setResult()
为更新的文本添加额外的字符串参数。 Example here
您可以在其他情况下使用共享偏好设置。
答案 1 :(得分:1)
fire
InventoryActivity
中的文字视图将为null
,直到onCreate
setContentView
中的参考文献为止
setContentView(R.layout.activity_inventory);
这是您的视图将被充气并被绘制到屏幕的位置。
因此无法访问TextView fire
util布局膨胀。
<强>解决方案强>
您可以在第二个屏幕中使用intent Extra显示第二个字符串,并在第二个活动中获取额外的字符串并将其设置为fire
textview。