Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android setText和getText在片段中_Android_Fragment - Fatal编程技术网

Android setText和getText在片段中

Android setText和getText在片段中,android,fragment,Android,Fragment,当我点击ActionBar上的一个按钮时,我可以从editText中getText(),但是当我尝试settText到editText时,onCreate活动应用程序崩溃了。问题是editText返回null 编辑: public class TransactionAdd extends FragmentActivity... EditText editText; @Override public void onCreate(Bundle savedInstanceState) {

当我点击ActionBar上的一个按钮时,我可以从
editText
getText()
,但是当我尝试
settText
editText
时,
onCreate
活动应用程序崩溃了。问题是editText返回null

编辑:

public class TransactionAdd extends FragmentActivity...

EditText editText;

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_transactions_pager);
        mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());

        mViewPager = (ViewPager) findViewById(R.id.pager);
        mViewPager.setAdapter(mSectionsPagerAdapter);

        editText = (EditText) mViewPager.findViewById(R.id.editText);

        ActionBar mActionBar = getActionBar();
        mActionBar.setDisplayShowHomeEnabled(false);
        mActionBar.setDisplayShowTitleEnabled(false);
        LayoutInflater mInflater = LayoutInflater.from(this);

        View mCustomView = mInflater.inflate(R.layout.custom_actionbar, null);

        ImageView imageView = (ImageView) mCustomView.findViewById(R.id.imageView);
        imageView.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                editText.setText("TEST"); // ...when I test this one, it works
            }
        });
        mActionBar.setCustomView(mCustomView);
        mActionBar.setDisplayShowCustomEnabled(true);

        editText.setText("TEST"); // ...this one does not

您需要在片段的OnCreateView方法中获取EditText的引用

例如:

public static class PlaceholderFragment extends Fragment {

    public PlaceholderFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_main, container, false);
    yourEditTextVariable = (TextView) rootView.findViewById(R.id.yourId);
    return rootView;
    }
}

您可能在
setContentView()之前调用
findViewById
否我在
setContentView()之前不调用它。是的,但我不需要片段中的它。我需要把它设置为活动。