0

当我从另一个活动中按下按钮时,我无法让 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);
    }
}

好的,再次感谢

4

2 回答 2

3

不幸的是,当当前的膨胀布局来自第二个活动时,您将无法从另一个活动中的一个活动访问视图对象。更多信息在这里

我推荐的做法:假设InventoryActivity会启动你的SecondActivity,在InventoryActivity中使用startActivityForResult()onActivityResult()。在您的第二个活动中,使用setResult()额外的字符串参数来更新文本。 这里的例子

您可以在其他场景中使用共享首选项。

于 2013-04-30T17:34:55.147 回答
1

fireTextview in InventoryActivity will be null, 直到它在onCreate之后得到它的引用setContentView

setContentView(R.layout.activity_inventory);这是您的视图将被放大并绘制到屏幕上的地方。因此无法访问 TextView fireutil 布局膨胀发生。

解决方案 你可以做什么你想在第二个屏幕中显示的第二个字符串 Intent Extra 并在第二个活动中获取该额外内容并将其设置为firetextview。

于 2013-04-30T17:18:37.020 回答