2013-11-30 1 views
0

Новичок Android вопроса здесь. Я использую новые Fixed Tabs + Swipe, представленные в пакете ADT. Он устанавливает все хорошее и аккуратное для вас. Я добавил 4 вкладки или фрагменты в панель действий, и я в тот момент, когда настало время настроить сами фрагменты, такие как добавление кнопок, ссылок на таблицы, а что нет. Я добавил таблицу к первому фрагменту. Эта таблица очень похожа на таблицу «Настройки» в корневой ОС Android. Таблица представляет собой таблицу сетевых подключений, которая будет управлять включением радиостанций BT и Wi-Fi. В таблице OS строка имела «переключатель» для управления состоянием BT или Wifi Radio. Кроме того, вы можете щелкнуть по строке, и она переведет вас в другой вид/активность, чтобы просмотреть список найденных сетей. Я пытаюсь заставить строку быть кликабельным, а затем добавить метод, который будет указывать строке, что делать, когда вы нажимаете.Где добавить интерактивную строку в фрагменте (Android)

Я смущен, делает OnClickListener идти в самом фрагменте или она уходит в Main, где находится пейджер? Мне показалось, что он войдет в сам фрагмент, поскольку он принадлежит ему. Так как «extends Fragment» не использует кнопки или какой-либо пакет из Activity, это то, где меня убивают.

Вот отрывок из XML-фрагмента с моей строкой таблицы:

 <TableRow 
      android:id="@+id/tableRow1" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:clickable="true" 
      android:onClick="rowClick" > 

      <ImageView 
       android:id="@+id/imageView1" 
       android:layout_width="20dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="2" 
       android:gravity="center_vertical" 
       android:maxHeight="10dp" 
       android:maxWidth="10dp" 
       android:paddingLeft="10dp" 
       android:paddingTop="7dp" 
       android:src="@drawable/wifi" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_column="2" 
       android:layout_weight="4" 
       android:gravity="center_vertical|left" 
       android:text="@string/wifi" 
       android:textColor="@color/white" 
       android:textSize="24dp" /> 

      <ToggleButton 
       android:id="@+id/tbWifi" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:text="@string/wifitogglebutton" 
       android:textColor="@color/white" /> 
     </TableRow> 

Вы можете увидеть, что я добавил как идентификатор в строку, а также в «интерактивном» атрибут. SO, когда пользователь нажимает на эту строку, как на вкладке настроек операционной системы, он должен быть перенаправлен на другой макет, где они могут видеть список доступных сетей. Стандартный фрагмент, как это предусмотрено ADT выглядит следующим образом:

import android.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.TableRow; 

public class SettingsActivity extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.fragment_settings, container, 
       false); 

     return rootView; 

    } 

} 

Если это полезно, то мой MAINACTIVITY, который вызывает фрагмент для этой вкладки выглядит следующим образом:

// Tab1 Settings Tab 
    public static class DummySectionFragment extends Fragment { 
     /** 
     * The fragment argument representing the section number for this 
     * fragment. 
     */ 
     public static final String ARG_SECTION_NUMBER = "section_number"; 

     public DummySectionFragment() { 
     } 

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

      return rootView; 
     } 
    } 

Я надеюсь, что мой вопрос делает немного смысла. Старые вкладки казались намного проще.

Благодаря

ответ

0

Лучше выбор вы можете использовать OnClickListener в самом fragment, только тогда вы можете re-use это fragment в другом activity без implementOnClickListener снова.

+0

нормально, но где в фрагменте она должна идти? Вот где у меня проблема. –

+0

в рамках метода getview. – Subbu

+0

Надеюсь, это не слишком глупо, но в настоящее время нет getView. Существует только onCreateView ( –

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

  • Нет связанных вопросов^_^