新手安卓问题在这里。 我正在使用 ADT 包中提供的新固定选项卡 + 滑动。 它为您设置了一切,整洁。 我已经在操作栏中添加了 4 个选项卡或片段,并且是时候配置片段本身了,例如添加按钮、表格链接等等。 我在第一个片段中添加了一个表。 此表与根 Android 操作系统中的"设置"表非常相似。该表是一个网络连接表,它将控制打开BT和Wifi无线电。 在操作系统表中,该行有一个"开关"来控制BT或Wifi无线电状态。 此外,您可以单击该行,它会将您转发到另一个视图/活动以查看找到的网络列表。 我正在尝试使该行可单击,然后添加方法,该方法将告诉该行在单击时该做什么。
我很困惑,OnClickListener 是进入片段本身还是进入寻呼机所在的主区? 在我看来,它会进入碎片本身,因为它属于它。 由于"扩展片段"不使用按钮或活动中的任何捆绑包,这就是我被杀死的地方。
以下是我的表格行片段的 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;
}
}
如果它有用,那么调用此选项卡片段的主活动如下:
// 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;
}
}
我希望我的问题有点道理。 旧标签似乎容易得多。
谢谢
更好的选择是您可以在fragment
本身中使用OnClickListener
,然后只有您可以在其他activity
中re-use
此fragment
而无需再次implement
OnClickListener
。