在Fragment中更改TextView

Mne*_*one 3 android fragment textview

我按照这个人的教程制作了一个ActionBar.假设我想在其中一个片段中更改TextView.所以我在onCreate下的StartActivity.java中添加了这个:

TextView textview = (TextView) findViewById(R.id.textView1);
textview.setText("HI!");
Run Code Online (Sandbox Code Playgroud)

当我启动我的应用程序时,它崩溃了.有人能指出我正确的方向吗?

我希望有人花时间看看这个人的教程,因为他的布局与我的基本相同.谢谢.

Jar*_*vis 8

如果你想改变你的组件,我建议你在片段里面创建一个方法,如下所示:

    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.TextView;

    public class DetailFragment extends Fragment {

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


        public void setText(String text){
            TextView textView = (TextView) getView().findViewById(R.id.detailsText);
            textView.setText(text);
        }

    }
Run Code Online (Sandbox Code Playgroud)

  • getView() 始终为空 (2认同)

小智 5

您可以尝试用 getActivity() 替换 getView() 吗?

public void setText(String text){
        TextView textView = (TextView) getActivity().findViewById(R.id.detailsText);
        textView.setText(text);
    }
Run Code Online (Sandbox Code Playgroud)