Android setText和getText在片段中
当我点击ActionBar上的一个按钮时,我可以从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) {
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()之前不调用它。是的,但我不需要片段中的它。我需要把它设置为活动。