Где добавить кликабельную строку во фрагменте (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
без implement
OnClickListener
снова.