Java 如何在Android Studio中引用接口组件

Java 如何在Android Studio中引用接口组件,java,android,xml,android-layout,android-studio,Java,Android,Xml,Android Layout,Android Studio,我对Java和其他“studio”软件包(如VisualStudio)都有经验。然而,我有点被难住了 我的“activity\u setup.xml”文件中有以下内容 <android.support.design.widget.FloatingActionButton android:id="@+id/fabPlayerToggle" android:layout_width="wrap_content" android:layout_height="37dp"

我对Java和其他“studio”软件包(如VisualStudio)都有经验。然而,我有点被难住了

我的“activity\u setup.xml”文件中有以下内容

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fabPlayerToggle"
    android:layout_width="wrap_content"
    android:layout_height="37dp"
    android:layout_marginStart="80dp"
    android:layout_marginTop="260dp"
    android:clickable="true"
    android:focusable="true"
    app:fabSize="mini"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:srcCompat="@android:drawable/ic_input_add" />
然后,我希望能够引用其他组件,例如我的lblPlayer3Name,并更改该组件的可见性状态/其他属性


我相信这是件相当简单的事情,但我只是被它弄糊涂了。感谢您的帮助。

如果您为您的FAB使用独特的OnClickListener(浮动操作按钮),如下所示:

mFab = findViewById(R.id.fab);
mFab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        // view is your FAB
        // Cast it to a FAB, i.e., fab = (FloatingActionButton) view;
        //   or work with a member variable like I have done with mFab
        Toast.makeText(view.getContext(), "Burnt bread!", Toast.LENGTH_LONG).show();
    }
});

现在,您可以通过
视图
或标准方式(如成员变量)(
mFab
)直接访问FAB。

因此您已经为您的FloatingAction按钮提供了一个id

android:id="@+id/fabPlayerToggle"
因此,在Java文件中创建一个FloatingActionButton对象,并将其引用到布局中的按钮

FloatingActionButton myFab = (FloatingActionButton) myView.findViewById(R.id.myFAB); 
因此,您现在可以像在XML中一样在Java中做很多事情

示例:

myFab.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
        //Do Something on Click
    } 
});
使晶圆厂隐形

myFab.setVisibility(View.INVISIBLE);
改变

试着改变

app:srcCompat="@android:drawable/ic_input_add"


这实际上不是财产。它们只存在于XML中,在膨胀期间转换为视图层次结构。如果您对
app:srcCompat=“@android:drawable/ic\u input\u add”
发生了什么感兴趣,那么:
@android:drawable/ic\u input\u add
是对可绘制资源文件的生成ID的引用。在实例化
FloatingActionButton
期间,资源由您在XML中提供的ID加载,并存储在FloatingActionButton`对象的内部


但它不是一种财产<例如,code>Java没有类似于C#的属性概念。它使用所谓的setter和getter。因此,如果您想从类中获取一些字段,您可能可以使用getter获取它。但是,它可能根本就不可用。

你想访问“浮动动作”按钮的属性吗?是的,从主.java文件中。请考虑所有帮助你的答案,不要忘记接受最原始的问题的最有用的答案。抱歉,我有这篇文章,但为了避免过于冗长,我没有把它包括在我的原始帖子中。我测试时,您的“设置可见性”起作用。是否有任何点运算符可以获取当前的srcCompat?我试过了。getsrc,getImage和其他的,但是没有一个是正确的。第一,查看更新后的答案,如果我想在点击晶圆厂时访问标签或文本区域的属性,那该怎么做?你可以通过右键轻松访问这些属性,我想你已经帮我找到了我想要的。为了确保我理解正确,要访问接口元素X的成员变量(这就是我要说的短语!),需要:=findviewbyd(R.id.),然后,您可以通过.getText()等方法检索成员?如果是成员变量,则选择“是”。如果是一个
最终
局部变量,则为是。在其他情况下,可能没有。。。内部类会让事情变得有点混乱。感谢您的回复;那太不幸了。我找不到任何可以返回图像的set或get方法,因此我可能必须切换到使用标准按钮,并在单击时更新文本值。@Nivarka,确实您无法获取
src
srcCompat
值,因为它没有存储。将其转换为可绘制的
。您可以通过调用
fabPlayerToggle.getDrawable()来获取可绘制文件
,但它将返回一个
可绘制的
对象。您能告诉我为什么需要
src
值吗?你想用它做什么?所以,我想让这个按钮在显示两个额外的文本输入字段和隐藏它们之间切换。如果单击时按钮的当前图标是“显示更多字段”,则将其他字段的可见性设置为true,并将按钮图标更改为“隐藏”图标。如果单击按钮并显示“隐藏”图标。。。等等@Nivarka,那么你可以在某个字段中单独存储一个状态,而不是通过按钮检查它。
app:srcCompat="@android:drawable/ic_input_add"
android:srcCompat="@android:drawable/ic_input_add"