0

我正在创建应用程序,但在此我需要输入用户名一切正常,它不会给我任何错误,但在“注册用户名”是得很好,但在下面的活动,以保存的EditText的文本不走它应该,它变成空白,我不知道发生了什么发送带有editText的文本在TextView中接收到白色

这是类,注册的用户名

public class UsernameRegiserActivity extends AppCompatActivity { 

    private Button buttonRegisterAnonymous, buttonRegisterAUsername; 
    private EditText getAUsernameToRegister; 
    private User mUser; 

    private Post mPost; 
    private PostMemes mPostMemes; 
    private PostCreativo mPostCreativo; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_username_regiser); 


     init(); 
    } 

    private void init() { 
     buttonRegisterAnonymous = (Button) findViewById(R.id.buttonRegisterAsAnonymous); 
     buttonRegisterAUsername = (Button) findViewById(R.id.buttonRegister_aUsername); 
     getAUsernameToRegister = (EditText) findViewById(R.id.editText_registerUsername); 
     //============================================================================== 

     mUser = new User(); 
     buttonRegisterAUsername.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String nombre = getAUsernameToRegister.getText().toString(); 


       mUser.setUsername(FirebaseUtils.getCurrentUser().getEmail().replaceAll(FirebaseUtils.getCurrentUser().getEmail(), nombre)); 
       mUser.setUser(FirebaseUtils.getCurrentUser().getEmail().replaceAll(FirebaseUtils.getCurrentUser().getEmail(), nombre)); 

       startActivity(new Intent(UsernameRegiserActivity.this, LogInActivity.class)); 

      } 
     }); 
    } 

并且在该片段中接收已经放置在editText中的名称

相关的代码:

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
           Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    mRootView = inflater.inflate(R.layout.fragment_post, container, false); 
    FloatingActionButton fab = (FloatingActionButton) 
    mRootView.findViewById(R.id.fabM); 
    mUser = new User(); 

    return mRootView; 
    } 

    PopulateViewHolder... 
    viewHolder.postOwnerUsernameTextView.setText(mUser.getUser()); 
    if(viewHolder.postOwnerUsernameTextView == null){ 
     viewHolder.postOwnerUsernameTextView.setText("Anonymous"); 
     } 

模型类:

public class User implements Serializable{ 
    private String user; 
    private String email; 
    private String Uid; 
    private String username; 

    public User() { 
    } 

    public User(String user) { 
     this.user = user; 
    } 

    public User(String user, String email, String uid, String username) { 
     this.user = user; 
     this.email = email; 
     Uid = uid; 
     this.username = username; 
    } 

    public String getUsername() { 
     return username; 
    } 

    public void setUsername(String username) { 
     this.username = username; 
    } 

    public String getUser() { 
     return user; 
    } 

    public void setUser(String user) { 
     this.user = user; 
    } 

    public String getEmail() { 
     return email; 
    } 

    public void setEmail(String email) { 
     this.email = email; 
    } 


    public String getUid() { 
     return Uid; 
    } 

    public void setUid(String uid) { 
     Uid = uid; 
    } 
} 

和,我使用

public static DatabaseReference getUserRef(String email) { 
    return FirebaseDatabase.getInstance() 
      .getReference(Constants.USERS_KEYS) 
      .child(email); 
} 
public static FirebaseUser getCurrentUser() { 
    return FirebaseAuth.getInstance().getCurrentUser(); 
} 

用户用这种方法

auth.createUserWithEmailAndPassword(email, password) 

创建的utils的对不起我的spe感谢您的关注。

回答

0

在您的另一个活动中,您再次创建一个新的模型类。这就是为什么你的editTank没有了。让我们尝试此解决方案,以2类

做出新的接口类的呼叫TransferData

public interface TransferData{ 
    void onTransferDataListener(String text); 
} 

内,您的活动让初始TransferData

public TransferData mTransferDataListener; 
public void setTransferData(TransferData listener) { 
     this.mTransferDataListener= listener; 
    } 
//whenever your make a new String from EditText, put it in this function 
mTransferDataListener.onTransferDataListener(yourText); 

最后,在你的类,你想要得到之间传输数据数据,你只需要实现TransferData类,别忘了添加这个函数来初始化接收器

//I call this function from my activity 
    mActivity.setTransferData(this); 

实现TransferData下课后,机器人工作室将自动添加此覆盖接收数据

@Override 
    public void onTransferDataListener(String text) { 
     //do what ever you want with your String text here 
    } 
+1

谢谢,我@TanHieu试试这个现在 – TheQuestionerXxx

+0

@TanHieu我不明白这'mActivity.setGPSLocationListener(本);' – TheQuestionerXxx

+0

@TheQuestionerXxx我不好,我更新了答案 – TranHieu

0

比方说,我在我的活动,这是它发送的字符串片段

对话在那个对话中可以做到这一点?

UsernameRegisterClass:

Public class UsernameRegister 
    TransferData mTransferData; 
    EditText mEditText; 
    Public void setmTransferData (TransferData lisenter) { This.mTransferData = lisenter;} 

    OnCreate (

  MTransferData.onTransferDataLisenter (mEditText.getText.toString()); 

Dialog类:

DialogClass.setTransferData (this); @Override Public void onTransferDataListener (String text) { MPost.setUsermae (text) // I think I get the text here} 

Private void sendPost() { 

    MPost.getUsername(); 

    // is the code okay? 
    } 

+0

@TranHieu它确定的代码? – TheQuestionerXxx