不幸的是,应用已经停止了,我怎样才能在创建View上进行此工作?

时间:2016-10-31 15:46:52

标签: java android android-studio

以前,我有一个类似的问题,app尝试访问时崩溃(或findByID),事实证明,我把textview放错了方法,现在我只有一个方法,而且我正在使用片段,方法onCreateView和我的应用程序一直崩溃:

public class InfoFragment extends Fragment {


    public InfoFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

       TextView n = (TextView) getView().findViewById(R.id.nama);
       n.setText("Some String");

        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_info, container, false);
    }

}

最初,我的线条看起来像这样:

 TextView n = (TextView) findViewById(R.id.nama);

然而,编译器给我一个错误,说它无法找到方法findViewById,所以一些研究显示我应该添加getView(),我做了,错误消失了,但现在应用程序崩溃,任何想法?

2 个答案:

答案 0 :(得分:2)

/solr/corename/update

您还没有查看该部分代码中的视图。首先充气并在之后使用。

答案 1 :(得分:1)

首先膨胀您的布局,然后您可以使用它来查找TextView:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_info, container, false);
    TextView n = (TextView) rootView.findViewById(R.id.nama);
    n.setText("Some String");

    return rootView;
}