Я создал MainActivity, который состоит из 3 вкладок, которые можно прокручивать (с помощью ViewPager). Теперь каждый из этих 3 вкладок является фрагментом. Кроме того, я использую ActionBarSherlock (ABS).Может ли фрагмент продлить действие фрагмента? [Android]
За 1-й фрагмент, я создал следующий класс:
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. */
}
}
Для 2-го фрагмента, я хочу продлить 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(). Это все в порядке?
Спасибо!
Можете ли вы предложить обходной путь для моей проблемы? –
@BornAgain: вы можете наследовать 'Fragment_2' из' Fragment'. Обратите внимание, что вы никогда не объясняли, почему вы «хотите расширить FragmentActivity». – CommonsWare
Проблема в том, что внутри класса Fragment_2 мне нужно использовать setContentView(), для которого мне нужно расширить Activity или FragmentActivity. Но это невозможно. –