Где добавить кликабельную строку во фрагменте (Android)

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

Я запутался, OnClickListener идет в самом фрагменте или в главном, где находится пейджер? Мне показалось бы, что это войдет в сам фрагмент, поскольку он принадлежит ему. Поскольку "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>

Вы можете видеть, что я добавил в строку как id, так и атрибут "clickable". Поэтому, когда пользователь нажимает на эту строку, как на вкладке настроек операционной системы, он / она должны быть перенаправлены в другой макет, где они могут видеть список доступных сетей. Стандартный фрагмент, предоставленный 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;
        }
    }

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

Спасибо

1 ответ

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

Другие вопросы по тегам