在片段中添加可点击行的位置(Android)

时间:2013-11-30 15:23:50

标签: android android-activity row fragment clickable

新手Android问题在这里。我正在使用ADT包中提供的新固定标签+滑动。它让一切都很好,整洁。我已经在操作栏中添加了4个选项卡或片段,现在是时候配置片段本身了,比如添加按钮,表格链接等等。我在第一个片段中添加了一个表。此表非常类似于根Android操作系统中的“设置”表。该表是一个网络连接表,它将控制打开BT和Wifi无线电。在OS表中,该行有一个“开关”来控制BT或Wifi无线电状态。此外,您可以单击该行,它将转发到另一个视图/活动,以查看找到的网络列表。我试图让行可以点击,然后添加方法,告诉该行点击时该做什么。

我很困惑,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>

您可以看到我已在行中添加了ID,也添加了“可点击”属性。因此,当用户在操作系统设置选项卡中单击此行时,他/她应转发到另一个布局,在那里他们可以看到可用网络列表。 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 个答案:

答案 0 :(得分:0)

更好的选择是,您可以在OnClickListener本身中使用fragment,然后只有re-use fragment在其他activityimplement没有OnClickListener } {{1}}再次。