【发布时间】:2020-09-15 02:21:52
【问题描述】:
大家好,我的应用程序的 mainActivity 布局只是一个巨大的片段。我计划使用共享首选项来确定我想首先开始哪个片段。一切都很好但是我无法从我的片段文本视图中访问数据。它将显示为空。这是我的主要活动课
SessionManager session;
/**
* The starting point of the app.
* @param savedInstanceState
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.gestureDetector = new GestureDetector(MainActivity.this,this);
session = new SessionManager(getApplicationContext());
if (session.isLoggedIn()) {
FirstFragment frag = new FirstFragment();
FragmentTransaction f = getSupportFragmentManager().beginTransaction();
f.add(R.id.flFragment, frag);
f.commit();
Toast.makeText(MainActivity.this, session.getUserDetails().get("name") + " is logged in ", Toast.LENGTH_SHORT).show();
} else {
LoginFragment frag = new LoginFragment();
FragmentTransaction f = getSupportFragmentManager().beginTransaction();
f.add(R.id.flFragment, frag);
f.commit();
}
}
/**
* button onclick event listener
* @param v
*/
public void loginButton(View v) {
LoginFragment frag = new LoginFragment();
session.createLoginSession(frag.userName.getText().toString()); \\ null pointer happens here
}
这是来自我的 LoginFragment 类的代码
MaterialEditText userName, password;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_login, container, false);
userName = view.findViewById(R.id.user_name);
return view;
}
我也尝试在我的 mainActivitys onCreate 中使用 findviewbyId 初始化 userName,但它仍然为空
【问题讨论】:
标签: android android-studio android-fragments