2013-08-08 3 views
3

Я создаю социальное приложение и хочу иметь интеграцию с Facebook, чтобы я мог захватывать информацию о Friends, User Info, размещать на стене пользователя и загружать картинку в Facebook. Я следил за учебниками на веб-сайте Facebook, но все они используют Фрагменты. Я бы предпочел не использовать фрагменты, если это вообще возможно. Я уверен, что Facebook не привяжет их API к использованию Фрагментов, поскольку это может затмить некоторых людей.Интеграция Android Facebook без фрагментов

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

  • Я не понимаю, почему вы не смогли бы это сделать без фрагментов.
  • Я не совсем понимаю суть Фрагментов и почему они становятся все более популярными.
  • У меня есть большая часть приложения, реализованного без использования фрагментов, и вы хотели бы использовать Facebook для входа/использования на этом этапе разработки.

Это, как говорится, как я могу это сделать без использования фрагментов?

Почему Фрагменты становятся все более популярными?

Если ответ заключается в использовании API Facebook с фрагментами, есть ли «простой» способ изменить приложение, которое я уже создал, который использует «Действия», так что он использует фрагменты?

Приветствие,

Jake

+0

Фрагменты используются в общем для работы между экранами с планшетом и телефоном. Есть и другие виды использования, но посмотрите http://developer.android.com/guide/components/fragments.html – Kirk

+0

В SDK ничего нет, что зависит от фрагментов. Любой документ, который вы видите, содержит ссылки на фрагменты, также будет работать с действиями. У вас есть конкретная проблема с внедрением? –

+0

Я считаю, что мой ответ решает проблему реализации без фрагментов (что является заголовком и основной проблемой). Не могли бы вы отметить, как ответили? –

ответ

-1

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

// Now this is the Activity class which I have to convert to fragments 
TestActivity.java 

public class TestActivity extends Activity implements OnClickListener { 

private static EditText edittext; 
private static Button button; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_first); 

    edittext = (EditText) findViewById(R.id.et_price); 
    button = (Button) findViewById(R.id.bt_bold); 
    button.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 
    if(v.equals(button)) { 
     edittext.setText("Arshad's Test App"); 
    } 
} 
} 

Теперь для преобразования TestActivity в фрагмент нам нужно сделать это в двух классах. TestActivity.java и TestFragment.java

// Now the TestActivity will extend the FragmentActivity instead of Activity 
public class TestActivity extends FragmentActivity { 

private TestFragment testFragment_object; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    if (savedInstanceState == null) { 
     // Add the fragment on initial activity setup 
     testFragment_object = new TestFragment(); 
     getSupportFragmentManager().beginTransaction() 
       .add(android.R.id.content, testFragment_object).commit(); 
    } else { 
     // Or set the fragment from restored state info 
     testFragment_object = (TestFragment) getSupportFragmentManager() 
       .findFragmentById(android.R.id.content); 
    } 
} 
} 

Теперь класс фрагмент будет содержать весь код из макетов и действия, выполняемые в классе, который содержится в классе активности ранее.

TestFragment.java 

public class TestFragment extends Fragment implements OnClickListener { 

private static EditText edittext; 
private static Button button; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.activity_first, container, false); 

    edittext = (EditText) view.findViewById(R.id.et_price); 
    button = (Button) view.findViewById(R.id.bt_bold); 
    button.setOnClickListener(this); 

    return view; 
} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 
    if(v.equals(button)) { 
     edittext.setText("Arshad's Test App"); 
    } 
} 
} 
+0

Эй, Аршад, поэтому посмотрев версию вашего фрагмента. Версия фрагмента по существу действует полностью нормально ... она просто расширяет фрагмент, позволяя ему загружаться как фрагмент вместо активности? Кроме того, если у меня есть несколько действий, я могу заставить фрагмент загружать другой фрагмент? –

+0

Да может фактически использовать что-то вроде случая переключения в классе Activity и изменять фрагменты в соответствии с вашими потребностями.Короче, вам нужно будет иметь только одно действие, и единственное, что нужно загрузить, - это фрагменты. – Arshu

+0

Да вниз голосования. Могу ли я узнать, что случилось с ответом. Это принятый ответ. – Arshu

0

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

Изменение видов деятельности на fragmnets очень просто, так как жизненный цикл и apis обоих этих компонентов являются одними и теми же. может быть, вы можете изменить деятельность фрагмент через 15-20 минут :)

Дайте ему шанс ..

+0

Итак, если я сделаю полный фрагмент фрагмента, а затем загрузим основное действие или что-то в этом фрагменте, он будет действовать так же, как и активность, но мне не нужно будет изменять размеры макетов для устройств разного размера? –

1

Я использую фрагменты, но я реализовал кнопку Войти Facebook с помощью деятельности.

Я просто объявил кнопку в макете

<com.facebook.widget.LoginButton 
    android:id="@+id_login/btEntrarFacebook" 
    android:layout_width="250dp" 
    android:layout_height="wrap_content" 
    android:background="@drawable/shape_bg_bt_azul" 
    android:layout_below="@+id_login/btEntrar" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="10dp" 
    android:textColor="#ffffff" 
    android:textSize="16dp" 
    android:typeface="serif" 
    android:text="f | Entre com o Facebook"/> 

и в деятельности:

btEntrarFacebook = (LoginButton) findViewById(R.id_login.btEntrarFacebook); 

примеры SDK поставляется с обеих активность и фрагменты реализаций. Учебники недостаточно ясны, но примеры лучше, чем собственные руководства для Facebook.

+1

Да, я не нашел ни одного из учебников, которые бы помогли, поскольку большинство из них устарели или используют фрагменты. –

0

С фрагментами понятия похожи на: есть фрагментация. Это похоже на обычные фрамнеты, которые, в свою очередь, содержат разные фрагменты. Я попытаюсь объяснить вам пример, который есть на сайте разработчика Android. Предположим, что мы работаем над таблицами. У нас может быть макет, который может покинуть панель и правую панель. Боте-панели - это два разных фрагмента. левая панель будет содержать пункты меню, а при щелчке по любому элементу отобразится правое окно. поскольку экран планшета большой, мы можем отображать обе панели на экране, и пользователю будет легко пользоваться. Может быть, как новостное приложение.Но этот дизайн не будет хорошо выглядеть на маленьких экранах телефонов. в таких случаях панели панелей автоматически разделяются на два экрана, и вы можете пронести между ними. каждая панель будет занимать весь экран. поэтому, если вы ничего не делаете, фрагмент позаботится о размерах экрана, чтобы настроить их макет. также обычно в портретном режиме, они отображаются в виде вкладок, но в горизонтальном режиме они опускаются.

+0

Хм, хорошо, мое приложение, скорее всего, будет использоваться только на телефонах, но я понимаю аргументы в пользу фрагментов. Они не обязательно быстрее или что-то еще, не так ли? –

+0

Да, в сценариях приложение также ускоряется. После того, как вы замените каждое действие фрагментом, вы можете перемещаться между ними, просто скользя и несколько фрагментов уже загружены для вас. Как обычно, у вас загружено 3 фрагмента. Фрагмет, который виден и фрагментирован слева и справа. В случае активности вам придется запускать одно действие из другого, которое потребует времени. Если вы загружаете вещи в свою деятельность, требуется время для создания активности ... с помощью фрагментов, которые вы можете прикреплять или отделять их от активности fragmnet или перемещаться затем назад. – Sushil

+0

Также важным фактором является то, что теперь пользовательский интерфейс Android Android имеет шаблон фрагмента, включая домашний экран. Таким образом, ваше приложение будет иметь унифицированный пользовательский интерфейс по сравнению с телефоном, который предлагается в руководстве по разработке приложений. В этом случае конечные пользователи будут чувствовать себя легче и знакомы при использовании вашего приложения. поверь мне, время переключиться :) – Sushil

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