Android编程eclipse getSupportFragmentManager()未定义
我知道还有其他关于这个问题的帖子,但我真的不知道如何把它应用到我的情况。我是一个新的程序员,我正在尝试使用我在网上找到的一些模板。我试图让忘记密码按钮工作。我得到的错误是 类型LoginFragment的方法getSupportFragmentManager()未定义Android编程eclipse getSupportFragmentManager()未定义,android,android-fragments,Android,Android Fragments,我知道还有其他关于这个问题的帖子,但我真的不知道如何把它应用到我的情况。我是一个新的程序员,我正在尝试使用我在网上找到的一些模板。我试图让忘记密码按钮工作。我得到的错误是 类型LoginFragment的方法getSupportFragmentManager()未定义 /** * Fragment for logging in. Includes button for loading the Create account view. * * @author
/**
* Fragment for logging in. Includes button for loading the Create account view.
*
* @author Trey Robinson
*
*/
public class LoginFragment extends BaseFragment {
public static final String EXTRA_USERNAME = "com.keyconsultant.parse.logintutorial.activity.extra.USERNAME";
public static final String EXTRA_PASSWORD = "com.keyconsultant.parse.logintutorial.activity.extra.PASSWORD";
// UI references.
private EditText mUserNameEditText;
private EditText mPasswordEditText;
/**
* Factory method for creating new fragments
*
* @return
*/
public static LoginFragment newInstance() {
return new LoginFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_login, container, false);
mUserNameEditText = (EditText) view.findViewById(R.id.username);
mPasswordEditText = (EditText) view.findViewById(R.id.password);
mPasswordEditText
.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int id,
KeyEvent keyEvent) {
if (id == EditorInfo.IME_NULL) {
attemptLogin();
return true;
}
return false;
}
});
view.findViewById(R.id.sign_in_button).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
attemptLogin();
}
});
view.findViewById(R.id.register_button).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
createAccount();
}
});
view.findViewById(R.id.forgot_button).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
forgotPassword();
}
});
return view;
}
/**
* Open the forgotPassword dialog
*/
private void forgotPassword() {
FragmentManager fm = getSupportFragmentManager();
ForgotPasswordDialogFragment forgotPasswordDialog = new ForgotPasswordDialogFragment();
forgotPasswordDialog.show(fm, null);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
mUserNameEditText.setText(savedInstanceState
.getString(EXTRA_USERNAME));
mPasswordEditText.setText(savedInstanceState
.getString(EXTRA_PASSWORD));
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString(EXTRA_USERNAME, mUserNameEditText.getText()
.toString());
outState.putString(EXTRA_PASSWORD, mPasswordEditText.getText()
.toString());
}
/**
* Attempts to sign in or register the account specified by the login form.
* If there are form errors (invalid email, missing fields, etc.), the
* errors are presented and no actual login attempt is made.
*/
public void attemptLogin() {
clearErrors();
// Store values at the time of the login attempt.
String username = mUserNameEditText.getText().toString();
String password = mPasswordEditText.getText().toString();
boolean cancel = false;
View focusView = null;
// Check for a valid password.
if (TextUtils.isEmpty(password)) {
mPasswordEditText
.setError(getString(R.string.error_field_required));
focusView = mPasswordEditText;
cancel = true;
} else if (password.length() < 4) {
mPasswordEditText
.setError(getString(R.string.error_invalid_password));
focusView = mPasswordEditText;
cancel = true;
}
// Check for a valid email address.
if (TextUtils.isEmpty(username)) {
mUserNameEditText
.setError(getString(R.string.error_field_required));
focusView = mUserNameEditText;
cancel = true;
}
if (cancel) {
// There was an error; don't attempt login and focus the first
// form field with an error.
focusView.requestFocus();
} else {
// perform the user login attempt.
UserManager.getInstance().authenticate(
username.toLowerCase(Locale.getDefault()), password);
}
}
/**
* Load the create account view.
*/
private void createAccount() {
FragmentManager fragmentManager = getActivity()
.getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager
.beginTransaction();
fragmentTransaction
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragmentTransaction.replace(
((ViewGroup) getView().getParent()).getId(),
CreateAccountFragment.newInstance());
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
/**
* Remove all edit text errors
*/
private void clearErrors() {
mUserNameEditText.setError(null);
mPasswordEditText.setError(null);
}
@Subscribe
public void onSignInError(AuthenticateUserErrorEvent event) {
clearErrors();
switch (event.getErrorCode()) {
case ParseException.OBJECT_NOT_FOUND:
mPasswordEditText
.setError(getString(R.string.error_incorrect_password));
mPasswordEditText.requestFocus();
break;
default:
UnknownErrorDialogFactory.createUnknownErrorDialog(
this.getActivity()).show();
break;
}
}
}
/**
*用于登录的片段。包括用于加载“创建帐户”视图的按钮。
*
*@作者特雷·罗宾逊
*
*/
公共类LoginFragment扩展了BaseFragment{
公共静态最终字符串EXTRA\u USERNAME=“com.keyconsultant.parse.logintutorial.activity.EXTRA.USERNAME”;
公共静态最终字符串EXTRA\u PASSWORD=“com.keyconsultant.parse.logintutorial.activity.EXTRA.PASSWORD”;
//用户界面引用。
私人编辑文本博物馆会议编辑文本;
私有编辑文本mPasswordEditText;
/**
*用于创建新片段的工厂方法
*
*@返回
*/
公共静态登录片段newInstance(){
返回新的LoginFragment();
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.fragment\u登录,容器,false);
musernamedittext=(EditText)view.findviewbyd(R.id.username);
mPasswordEditText=(EditText)view.findviewbyd(R.id.password);
mPasswordEditText
.setOnEditorActionListener(新的TextView.OnEditorActionListener(){
@凌驾
公共布尔onEditorAction(TextView TextView,int-id,
KeyEvent(关键事件){
if(id==EditorInfo.IME\u NULL){
尝试登录();
返回true;
}
返回false;
}
});
view.findViewById(R.id.sign\u in\u按钮)。setOnClickListener(
新建视图。OnClickListener(){
@凌驾
公共void onClick(视图){
尝试登录();
}
});
view.findviewbyd(R.id.register_按钮).setOnClickListener(
新建视图。OnClickListener(){
@凌驾
公共void onClick(视图){
createAccount();
}
});
view.findViewById(R.id.forget_按钮).setOnClickListener(
新建视图。OnClickListener(){
@凌驾
公共void onClick(视图){
放弃密码();
}
});
返回视图;
}
/**
*打开forgotPassword对话框
*/
私有无效放弃密码(){
FragmentManager fm=getSupportFragmentManager();
ForgotPasswordDialogFragment forgotPasswordDialog=新建ForgotPasswordDialogFragment();
forgotPasswordDialog.show(fm,null);
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
如果(savedInstanceState!=null){
musernamedittext.setText(savedInstanceState
.getString(额外的用户名));
mPasswordEditText.setText(savedInstanceState
.getString(额外的_密码));
}
}
@凌驾
SaveInstanceState上的公共无效(束超出状态){
super.onSaveInstanceState(超出状态);
putString(额外的_用户名,musernamedittext.getText()
.toString());
outState.putString(额外密码,mPasswordEditText.getText()
.toString());
}
/**
*尝试登录或注册登录表单指定的帐户。
*如果存在表单错误(无效电子邮件、缺少字段等),则
*出现错误,未进行实际登录尝试。
*/
public void attemptLogin(){
clearErrors();
//在尝试登录时存储值。
字符串username=musernamedittext.getText().toString();
字符串密码=mPasswordEditText.getText().toString();
布尔取消=假;
视图焦点视图=空;
//检查密码是否有效。
if(TextUtils.isEmpty(密码)){
mPasswordEditText
.setError(getString(R.string.error_字段_必填));
focusView=mPasswordEditText;
取消=真;
}else if(password.length()<4){
mPasswordEditText
.setError(getString(R.string.error\u密码无效));
focusView=mPasswordEditText;
取消=真;
}
//检查有效的电子邮件地址。
if(TextUtils.isEmpty(用户名)){
MuserNameditText
.setError(getString(R.string.error_字段_必填));
focusView=MuserNameEdit文本;
取消=真;
}
如果(取消){
//出现错误;请不要尝试登录并在第一次登录时集中注意力
//表单字段有错误。
focusView.requestFocus();
}否则{
//执行用户登录尝试。
UserManager.getInstance().authenticate(
用户名.toLowerCase(Locale.getDefault()),密码);
}
}
/**
*加载“创建帐户”视图。
*/
私有帐户(){
FragmentManager FragmentManager=getActivity()
.getSupportFragmentManager();
FragmentTransaction FragmentTransaction=fragmentManager
.beginTransaction();
零碎交易
.setTransition(FragmentTransaction.Transition\u FRAGMENT\u OPEN);
碎片事务
FragmentManager fm = getSupportFragmentManager();
FragmentManager fm = getActivity().getSupportFragmentManager();