2 xiaoyan 12 xiaoyan_12 于 2013.05.23 16:45 提问

Android: Fragment不能获取activity

下面的 activity 执行一个 fragment transaction

DetailFragment newFragment = new DetailFragment();
transaction.replace(R.id.mylist, newFragment);
transaction.addToBackStack(null);
transaction.commit();

我想要用一个动态的string去替换布局里面newFragment里的值
我觉得可以把 newFragment.setMyString("my dynamic value");放在transaction.commit()后面。
在 newFragment.java 中

public void setMyString(String s)
{
 TextView tv = (TextView) getActivity().findViewById(R.id.myobject);
 tv.setText(s);
}

但是提示说 getActivity() 返回 null。如何获取 context 找到layout elements?

1个回答

wurenbi45
wurenbi45   2013.05.23 17:00
已采纳
DetailFragment newFragment = new DetailFragment(ACTIVITY);

构造函数里加上activity的引用传过去,
在DetailFragment类里面接收

Context context = ACTIVITY;

然后

public void setMyString(String s,Context context)
{
 TextView tv = (TextView) context.findViewById(R.id.myobject);
 tv.setText(s);
}
suannai0314
suannai0314 帮你编辑了下代码部分的格式,更多markdown使用见http://ask.csdn.net/pages/markdown
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!