Android 片段中的OnClickListener不起作用
我有一个main活动和一个名为Frags的片段,它本身有一个名为cardfrontframent的片段 我在这个片段(子片段)上注册了一个OnClickListener,在这个OnClickListener的OnClick方法中,我将这个片段(CardFrontFragment)替换为CardbackFragment片段。我也在这个片段(CardbackFragment)上注册了一个OnClickListener,以便再次在这个到子片段之间切换 第一个片段(CardfrontFragment)中的OnClickListener起作用,第二个片段显示出来,但是现在单击第二个片段什么都没有发生,OnClickListener不能处理第二个片段,这简直要了我的命,请帮帮我 代码: MainActivity.javaAndroid 片段中的OnClickListener不起作用,android,android-fragments,Android,Android Fragments,我有一个main活动和一个名为Frags的片段,它本身有一个名为cardfrontframent的片段 我在这个片段(子片段)上注册了一个OnClickListener,在这个OnClickListener的OnClick方法中,我将这个片段(CardFrontFragment)替换为CardbackFragment片段。我也在这个片段(CardbackFragment)上注册了一个OnClickListener,以便再次在这个到子片段之间切换 第一个片段(CardfrontFragment)中
public class MainActivity extends ActionBarActivity {
public static Frags frag=new Frags();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, frag)
.commit();
}
}
}
Frags.java
public class Frags extends Fragment{
CardBackFragment back=new CardBackFragment();
CardFrontFragment front=new CardFrontFragment();
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view;
view=inflater.inflate(R.layout.frag_layout, container, false);
getChildFragmentManager().beginTransaction()
.add(R.id.frag_container, back)
.commit();
return view;
}
public void Onflip(boolean iSback)
{
if(iSback)
{
getChildFragmentManager().beginTransaction()
.setCustomAnimations(
R.animator.card_flip_right_in, R.animator.card_flip_right_out,
R.animator.card_flip_right_in, R.animator.card_flip_right_out)
.replace(R.id.frag_container, front)
.commit();
}
else
{
getChildFragmentManager().beginTransaction()
.setCustomAnimations(
R.animator.card_flip_right_in, R.animator.card_flip_right_out,
R.animator.card_flip_right_in, R.animator.card_flip_right_out)
.replace(R.id.frag_container, back)
.commit();
}
}
}
CardFrontFragment
public class CardFrontFragment extends Fragment {
public CardFrontFragment() {
}
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view=inflater.inflate(R.layout.fragment_card_front, container, false);
view.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
MainActivity.frag.Onflip(false);
Log.i("front","onclick");
}
});
return view;
}
}
卡背碎片
public class CardBackFragment extends Fragment {
public CardBackFragment() {
}
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view=inflater.inflate(R.layout.fragment_card_back, container, false);
view.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
MainActivity.frag.Onflip(false);
Log.i("back","onclick");
}
});
return view;
}
}
xml:
fragment_card_front.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#0000ff" >
<Button
android:id="@+id/front_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
fragment_card_back.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#000000" >
<Button
android:id="@+id/back_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
frag_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/frag_container">
</LinearLayout>
activity_main.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.demokhar.MainActivity"
tools:ignore="MergeRootFrame" />
这很奇怪,因为两个子片段是相同的。使用一张卡片段
并切换图像不是更有意义吗?就这点而言,你真的需要卡片的片段吗?也许一个简单的View
子类会更好。我不能使用image,因为我想在每一面都有一个按钮,还有单独的onclicklisteners,我是android新手,这是我想到的第一件事,使用View听起来不错。谢谢