Я создал MainActivity, который состоит из 3 прокручиваемых вкладок (с помощью ViewPager). Теперь каждая из этих 3 вкладок является фрагментом. Кроме того, я использую ActionBarSherlock (ABS).
Для первого фрагмента я создал следующий класс:
public class Fragment_1 extends SherlockFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View v = inflater.inflate(R.layout.fragment1, container, false);
return v;
/* R.layout.fragment1 only contains a TextView. */
}
}
Для второго фрагмента я хочу расширить FragmentActivity, как показано ниже.
public class Fragment_2 extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment2);
}
}
3-й фрагмент такой же, как и первый.
Но когда я запускаю приложение, оно вылетает. Итак, я ошибаюсь в расширении FragmentActivity для класса Fragment_2? Является ли незаконным расширение FragmentActivity или даже Activity для фрагментации классов? Если нет, то в чем здесь проблема?
Спасибо.
EDIT: После ответа @CommonsWare я обновил свой класс следующим образом:
public class Fragment_2 extends SherlockFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button send = (Button) findViewById(R.id.bSend); //Error at this line
//some error free code
FragmentTransaction t = getSupportFragmentManager().beginTransaction(); //Error at this line
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View v = inflater.inflate(R.layout.fragment2, container, false);
return v;
}
Мои последние два вопроса:
- Как мне получить доступ к моей кнопке R.id.bSend в классе Fragment_2.
- Eclipse предлагает изменить getSupportFragmentManager() на getFragmentManager(). С этим изменением все в порядке?
Спасибо!