我正在尝试创建一个在运行时添加动态片段的活动。从该片段中,我希望能够在单击按钮时打开其他六个片段。[打算用一个案例来实现这个最有可能]
将其视为 Windows 8 UI;有 6 个按钮,每个按钮打开一个新片段。
不幸的是,我不知道该怎么做。我似乎无法获得将数据传递回主要活动的按钮。由于 git 事故,我也丢失了很多代码。这是我重新创建的。
如果您有任何关于编码风格、语法、java、OO 的提示,我们也欢迎您。我来自C背景。我的最终目标是稍后为一些简单的语法糖创建一个 replaceFragment(Frag) 方法。虽然到目前为止我无法成功地实现它。
另一个关于片段的小问题 - 我试图在运行时动态添加它们 - 我需要在运行时创建所有片段吗?所以每个人都需要一个 .add [Drink fragment, Menu fragment] 还是我只需要做 .replace
SingleFragmentActivity.java
public abstract class SingleFragmentActivity extends FragmentActivity{
protected abstract Fragment createFragment();
FragmentManager fm = getSupportFragmentManager();
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //Lock screen orientation for app
Fragment frag = fm.findFragmentById(R.id.fragment_container);
fm.beginTransaction()
.add(R.id.fragment_container,frag)
.commit();
}
}
Customer_Activity.java
public class Customer_Activity extends SingleFragmentActivity {
public static Context appContext;
@Override
protected Fragment createFragment() {
return new CustomerSelectionFragment();
}
}
客户选择片段
public class CustomerSelectionFragment extends Fragment implements OnClickListener{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.customer_selection_fragment, container, false);
//Buttons should be placed here?
Button btnDrink = (Button) v.findViewById(R.id.Drink);
btnDrink.setOnClickListener(this);
Button btnMenu = (Button) v.findViewById(R.id.Menu);
btnDrink.setOnClickListener(this);
return v;
}
//implement the onClick method here
public void onClick(View v) {
// Perform action on click
switch(v.getId()) {
case R.id.Drink:
//Not sure how to pass "Create Drink Fragment to activity?
break;
case R.id.Menu:
//Pass Create Menu fragment to activity?
break;
}
}
}
出于善意原因编辑我的帖子的人完全没问题[清晰度等]。