我试图将数据从我的Activity类简单地发送到片段,但是当我试图在片段中调用“ setText(String text)”时,程序崩溃了。

ActivityClass:

Fragment_green green = new Fragment_green();
        transaction.replace(R.id.infoFragment, green);
        transaction.addToBackStack(null);
        transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
        transaction.commit();
        green.setText("bar"); //Works okay this far


我的Fragment_green:

public class Fragment_green extends Fragment {

String textShow;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    return inflater.inflate(R.layout.fragment_green, container, false);
}

public void setText(String text){
    TextView textView = (TextView) getView().findViewById(R.id.textGreen);
    textView.setText(text); //Crash :(
}}


其他一切正常。我可以将片段更改为另一个,依此类推。
我看过几篇类似的文章,但是当我试图劝说那些文章时,还会出现其他问题。

我感谢所有有用的答案!

最佳答案

如果确定textview位于片段布局中,则可能是生命周期错误。当您尝试访问textview时,片段的视图并没有被放大。

不建议以这种方式将信息传递给片段。尝试通过捆绑传递字符串,并在调用onCreateView时在textview中设置文本。

关于android - Android:将数据发送到 fragment ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20080438/

10-10 18:36