2015-03-18 2 views
0

я в настоящее время имею конвертер приложение Unit, что я работаю в.Можно ли преобразовать Blank деятельность фрагменту деятельность

Здесь я использовал несколько незаполненной деятельность. Если активность каждого подразделения может быть открыта с использованием MainActivity. Но теперь я хочу сделать планшет дружелюбным.

Следовательно, теперь я хочу использовать FragmentActivity. Возможно ли преобразовать действия «Пустое действие» в «Фрагмент»?

ответ

0

Я бы посетил веб-сайт Android, поскольку они дают довольно хорошее объяснение по телефону how fragments work.

Вы можете узнать, как добавить их в существующее приложение на другую ссылку для Android here.

1

Все, что вам нужно сделать, это взять всю логику, зависящую от конкретного вида, от Activity to Fragment, а затем загрузить фрагмент в свою активность.

Например,

public class MainActivity extends Activity { 
    @InjectView(R.id.button) 
    public Button button; 

    @OnClick(R.id.button) 
    public void onButtonClick(View view) { 
     Toast.makeText(this, "Hello!", Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     ButterKnife.inject(this); 
    } 
} 

Этот тип логики идет в

public class MainFragment extends Fragment { 
    @InjectView(R.id.button) 
    public Button button; 

    @OnClick(R.id.button) 
    public void onButtonClick(View view) { 
     Toast.makeText(this, "Hello!", Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_main, container, false); 
     ButterKnife.inject(this, view); 
     return view; 
    } 
} 

И ваша активность должна отобразить этот фрагмент либо статически, либо динамически. Если вы идете динамичны, вам понадобятся следующие строки в деятельности:

public class MainActivity extends FragmentActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     FragmentManager fm = getSupportFragmentManager(); 
     if(savedInstanceState == null) { 
      fm.beginTransaction() 
       .add(R.id.container, new MainFragment()) 
       .commit(); 
     } 
     fm.addOnBackStackChangedListener(new OnBackStackChangedListener() { 
      @Override 
      public void onBackStackChanged() { 
       if(getSupportFragmentManager().getBackStackEntryCount() == 0) finish(); 
      } 
     }); 

    } 
} 

Если вы идете статичны, то вам необходимо указать фрагменты в макете XML для деятельности.

http://developer.android.com/guide/components/fragments.html#Adding

Смежные вопросы