Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在xml中将参数传递给方法_Java_Android_Xml_Android Studio_Android Layout - Fatal编程技术网

Java 在xml中将参数传递给方法

Java 在xml中将参数传递给方法,java,android,xml,android-studio,android-layout,Java,Android,Xml,Android Studio,Android Layout,我有几个按钮,每个按钮都调用自己的函数onClick。这些按钮指示滚动视图滚动到特定元素(如目录中的链接)。我有三种方法,每种方法都有几乎相同的代码;显然,最好在方法中传递要滚动到的视图 info_page.xml: <TextView ... android:onClick="scrollToSetup" ... /> <TextView ... android:onClick="scrollToObje

我有几个按钮,每个按钮都调用自己的函数onClick。这些按钮指示滚动视图滚动到特定元素(如目录中的链接)。我有三种方法,每种方法都有几乎相同的代码;显然,最好在方法中传递要滚动到的视图

info_page.xml:

<TextView
    ...
    android:onClick="scrollToSetup"
    ... />

<TextView
    ...
    android:onClick="scrollToObjective"
    .../>

<TextView
    ...
    android:onClick="scrollToGameplay"
    .../>
<TextView
    ...
    android:onClick"scrollTo","header_setup"
    ... />

<TextView
    ...
    android:onClick"scrollTo","header_objective"
    ... />
<TextView
    ...
    android:onClick"scrollTo","header_gameplay"
    ... />
我不太确定这到底是如何工作的,但希望是这样:

info_page.xml:

<TextView
    ...
    android:onClick="scrollToSetup"
    ... />

<TextView
    ...
    android:onClick="scrollToObjective"
    .../>

<TextView
    ...
    android:onClick="scrollToGameplay"
    .../>
<TextView
    ...
    android:onClick"scrollTo","header_setup"
    ... />

<TextView
    ...
    android:onClick"scrollTo","header_objective"
    ... />
<TextView
    ...
    android:onClick"scrollTo","header_gameplay"
    ... />

是否有人有任何方法可以做到这一点,或者指向我可以阅读的文档?非常感谢

您可以通过使用
数据绑定来实现这一点。然后将自定义的
侦听器
传递给
绑定
,例如,如果您想滚动到id为的视图(在相同的XML中)
R.id.my_target_view1
您的XML
onClick
方法应该如下所示:

android:onClick='@{(v)->listener.scrollToGameplay(v,myTargetView1)}'

因为在生成
绑定
时,生成器将
snake\u案例
转换为
camelCase

注意:我的建议可能有些过分,但我认为没有其他方法可以实现这一点