我正在尝试在我的登录按钮下制作文字"还没有帐户?现在报名"当点击发送给我的RegisterFragment.so时,我在我的LoginFragment中为它添加了一个OnClickListener。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
TextView signup = (TextView) getView().findViewById(R.id.signup);
signup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LoginFragment.this.startActivity(new Intent(getActivity(), RegisterFragment.class));
}
});
但是当我运行代码时,应用程序在此行崩溃
TextView signup = (TextView) getView().findViewById(R.id.signup);
这是我的fragment_login.xml文件
<TextView android:id="@+id/signup"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:text="No Account Yet? Signup_now"
android:gravity="center"
android:textSize="16dp"
android:clickable="true"/>
拜托,我真的需要你的帮助。
答案 0 :(得分:2)
onCreateView()方法负责创建视图,因此您应该首先创建它。
您无法在getView()
内直接使用onCreateView()
。
你需要先像
那样给它充气View view = inflater.inflate(R.layout.my_layout, container, false);
然后使用
TextView signup = (TextView) view.findViewById(R.id.signup);
所以完整的代码看起来应该是这样的
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_layout, container, false);
TextView signup = (TextView) view.findViewById(R.id.signup);
signup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
return view;
}
另外,设置点击监听器初始化TextView等应该在onViewCreated()
内完成。 onCreateView()
应该创建&amp;返回视图。
喜欢
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
TextView signup = (TextView) view.findViewById(R.id.signup);
// and so on...
}
答案 1 :(得分:0)
我建议不要将点击监听器设置为您要输入的内容
在getView
实际返回正确的onCreateView
View
醇>
RegisterFragment.class
不是活动,您不能startActivity
。 使用FragmentManager
getSupportFragmentManager().beginTransaction()
.replace(R.id.<someContainer>, RegisterFragment.class)
.commit();
或者,您可以查看Communication between Fragments上的文档,了解如何在onLogin()
或onRegistrationSelected()
操作上实现切换到注册片段或&#34;登录后&# 34;主要片段。