我正在制作一个测验应用程序,其中标记显示在屏幕的左侧,按下它们时,您必须猜测它所属的国家/地区右侧的Fragment
。屏幕。因此,当按下标记时,您应该被带到Fragment
,您可以输入答案。 Aka每个标志都有自己的Fragment
。但是,我在使用代码时遇到了一些问题。
无论我点击哪一个按钮(/标志),所有片段都会立即出现。但是,我只想让它们一次出现一个。我试过在我的代码中插入一个if语句,但我觉得我错过了一些东西。 非常感谢所有的帮助!
解决方案是在if语句中添加.show()
和.hide()
吗?
Play.java
import android.graphics.Color;
import android.os.Bundle;
import android.app.FragmentManager;
import android.view.View;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.view.View.OnClickListener;
import android.view.LayoutInflater;
import android.widget.ImageButton;
import layout.FragmentOne;
import layout.FragmentTwo;
public class Play extends MainActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play);
final ImageButton imageBtn10 = (ImageButton)findViewById(R.id.imageButton10);
imageBtn10.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fragMan = getFragmentManager();
FragmentTransaction fragTrans = fragMan.beginTransaction();
FragmentOne f1 = new FragmentOne();
fragTrans.replace(R.id.fragment_place, new FragmentOne());
fragTrans.addToBackStack(null);
fragTrans.commit();
}
});
final ImageButton imageBtn9 = (ImageButton)findViewById(R.id.imageButton9);
imageBtn9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(v.equals(imageBtn9)) {
FragmentManager fragMan = getFragmentManager();
FragmentTransaction fragTrans = fragMan.beginTransaction();
FragmentTwo f2 = new FragmentTwo();
fragTrans.replace(R.id.fragment_place2, new FragmentTwo());
fragTrans.addToBackStack(null);
fragTrans.commit();
}
}
});
}
}