我是android开发的新手,我当前正在创建一个使用tabhost和TabActivity来切换不同活动的应用程序.这个应用程序工作正常,但我最近发现TabActivity已被弃用,我应该使用片段代替.
所以,我按照这个伟大的教程解释如何这样做:http: //thepseudocoder.wordpress.com/2011/10/04/android-tabs-the-fragment-way/
大多数工作正常,但我的问题是我的一些旧活动,现在碎片是使用这种方法膨胀ImageButton:
private void displayLevelButtons() {
LayoutInflater lf = getLayoutInflater();
btns = lf.inflate(R.layout.mallmapactivity_level_buttons, null, false);
mBtnLevelDown = (ImageButton) btns.findViewById(R.id.btn_level_down);
mBtnLevelUp = (ImageButton) btns.findViewById(R.id.btn_level_up);
mBtnLevelDown.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
levelDown();
updateLevelButtons();
}
});
mBtnLevelUp.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
levelUp();
updateLevelButtons();
}
});
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL | Gravity.RIGHT;
addContentView(btns,params);
}
Run Code Online (Sandbox Code Playgroud)
为了能够在片段内编译此方法,我改变了:
LayoutInflater lf = getLayoutInflater();
Run Code Online (Sandbox Code Playgroud)
至
LayoutInflater lf = getActivity().getLayoutInflater();
Run Code Online (Sandbox Code Playgroud)
和
addContentView(btns,params); …Run Code Online (Sandbox Code Playgroud)