TabFragment活动中的按钮意图?

时间:2015-09-16 17:56:56

标签: android android-fragments android-intent

public class Home extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.home,null);


    }}

这是片段标签1的整个代码.. 我有一个带有两个TabFragments的程序,我想在片段选项卡1和2中声明一个图像按钮和按钮意图,但我不能这样做,并且findviewbyid不起作用..

我可以做什么来宣布按钮意图?

1 个答案:

答案 0 :(得分:0)

要处理按钮点击(并查看一般的点击次数),请使用View.OnClickListener界面。您所要做的就是覆盖其onClick方法,并通过调用setOnClickListener()将其分配给视图。

您还可以找到详尽的教程here

UPD:您的方法应如下所示:

public View onCreateView(.....) {

    // assign inflated view to a variable
    View v = inflater.inflate(R.layout_services, null);

    // set your listener
    v.findViewById(R.id.imageButton).setOnClickListener(.....);

    // return the view in the end
    return v;
}

问题是你立即返回膨胀的视图,下面的代码根本不会运行,这就是为什么会出现这个错误。

UPD2 现在问题是startActivity方法正在接收Context作为第一个参数,因此您应该通过调用getActivity()将活动传递给那里(而不是传递Services.this)。您可以阅读更多here

UPD3:您似乎不明白代码的作用。您的findViewById电话无效,因为它未被分配给变量,而您的setOnClickListener正在应用于整个片段视图。这部分应该是这样的:

ImageButton button = (ImageButton) v.findViewById(R.id.imageButton);
button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        Activity activity = getActivity();
        Intent intent = new Intent(activity, Admin.class);
        activity.startActivity(intent);
    }
});

我建议在尝试实际编写应用程序之前,先了解所有这些方法是如何工作的(至少要查看引用,首先是:herehere)。祝你好运。