从膨胀的视图调用类方法

时间:2016-05-20 16:23:16

标签: java android android-fragments

快速问题。我写了一些View类,并通过XML将它们包含在Fragment中。这些View类正在膨胀。

private void inflateView(Context context){
    inflater =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    inflater.inflate(R.layout.layout_motoreffiziens_view, this, true);
}

在my片段的onCreateView中,我通过findViewById获取View引用。 为了满足某些任务,我为我的View实现了一个监听器,我可以使用我的实习方法addListeners(myCustomListener)添加它。

我的问题是我现在无法调用方法(因为它显然是一个View而不是ClassReference)。

我的查看标题

public class MotorSelection  extends RelativeLayout implements Spinner.OnItemSelectedListener {

private LayoutInflater inflater;
private SpinnerChange spinnerChangeListener = null ;

此视图嵌套在我的Fragment XML中:

<com.example.andy.einzelprojekt1.views.MotorSelection
    android:id="@+id/view_motor_selection"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

所以我的问题是如何从膨胀的视图中使用我的方法? 更具体:

在我的片段的onCreate中,我想要访问此视图并添加一个监听器。

问候

/ e 20.5.16

2 个答案:

答案 0 :(得分:0)

您能否发布View班的代码?
实际上,夸大视图是您班级的实例,因此您应该可以致电view.yourMethod()

另一种方式(如果我在你的问题中遗漏了某些内容),就是使用Reflection 例如,this

答案 1 :(得分:0)

好的愚蠢的错误。 我将我的视图加入扩展对象(在我的Case RelativeLayout中)。因此,我无法访问在新ViewClass中声明的方法。

motorselection = (MotorSelection) rootView.findViewById(R.id.view_motor_selection);

/回答