안녕하세요.. 이제 막 공부시작한 초보입니다..
다름이 아니라, 제가 액션바를 만들었는데요.
여기서 각 항목마다. 다른 클래스를 불러오는 방법이 궁금합니다.
예로들어서. 어떤 항목의 바를 눌렀을때.. (1~4번의 액션바. 탭이 있다면.. )
그 항목에서 다른 클래스에서 만든 것을 보고 싶은데요. (예로. 4번을 눌렀을때, 미리 버튼을 만든 클래스를 불러오기)
어떻게 하는건지 잘 모르겠습니다... ㅠㅠ..
코드는 이렇게 됩니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
...
bar.addTab(bar.newTab().setText("Option").setTabListener(
new TabListener<FourFragment>(this, "Four", FourFragment.class)));
bar.show();
}
public static class TabListener<T extends Fragment>
implements android.app.ActionBar.TabListener{
private Fragment mFragment;
private final Activity mActivity;
private final String mTag;
private final Class<T> mClass;
public TabListener(Activity activity, String tag, Class<T> clz) {
mActivity = activity;
mTag = tag;
mClass = clz;
}
@Override
public void onTabReselected(Tab arg0, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabSelected(Tab arg0, FragmentTransaction ft) {
if(mFragment == null) {
mFragment = Fragment.instantiate(mActivity, mClass.getName());
ft.add(android.R.id.content, mFragment, mTag);
} else {
ft.attach(mFragment);
}
}
@Override
public void onTabUnselected(Tab arg0, FragmentTransaction ft) {
if(mFragment != null) {
ft.detach(mFragment);
}
}
}
----------------------------------
public static class FourFragment extends Fragment {
int mNum;
static FourFragment newInstance(int num) {
FourFragment f = new FourFragment();
Bundle args = new Bundle();
args.putInt("num", num);
f.setArguments(args);
return f;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mNum = this.getArguments() != null ? this.getArguments().getInt("num") : 1;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.main, container, false);
View tv = v.findViewById(R.id.text);
((TextView)tv).setText("Fragment #" + FourFragment.class.getName());
return v;
}
}
----------------------------- 이 밑부분은. Option.java 로. 다른 클래스입니다.
public class Option extends Activity implements OnClickListener {
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
btn = new Button(this); //이 클래스에서 만든다는 의미로 this사용
btn.setText("자바로 만든 Button");
setContentView(btn);
BtnHandler bh = new BtnHandler();
btn.setOnClickListener(bh);
}