<Button
android:id="@+id/On"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="92dp"
android:text="Prender"
app:layout_constraintStart_toStartOf="parent"
<tag android:id="@+id/on_tag" android:value="1" />
<Button
android:id="@+id/Off"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:tag="0"
android:text="Apagar"
app:layout_constraintEnd_toStartOf="@+id/On"
app:layout_constraintStart_toStartOf="parent"
tools:layout_editor_absoluteY="143dp"
<tag android:id="@+id/on_tag2" android:value="0" />
单击标签时如何显示标签的值?我想创建onClick事件以查看值0或1“我想要一个INT值”而不是字符串
如果我使用的话也一样
android:id="@+id/Off"
android:value="1"
或
<tag android:id="@+id/On" android:value="1" />
这是我正在使用kotlin的.kt,需要显示代码的int值
class MainActivity : AppCompatActivity() {
override fun onClick(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.this)
On.setOnClickListener(View.OnClickListener { v ->
Log.e(
FragmentActivity.TAG,
v.getTag(R.id.on_tag)?.toString()
)
})
Off.setOnClickListener(View.OnClickListener { v ->
Log.e(
FragmentActivity.TAG,
v.getTag(R.id.on_tag2)?.toString()
)
})
}
}
答案 0 :(得分:1)
在onClick(View v)
内,您可以按以下方式致电v.getTag()
Button btnOn = (Button)findViewById(R.id.On);
btnOn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e(TAG,String.valueOf(v.getTag()));
}
});
但是要使上述代码正常工作,您的xml应该如下所示。
<Button
android:id="@+id/On"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="92dp"
android:text="Prender"
android:tag="1"
app:layout_constraintEnd_toStartOf="@+id/Off"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView"
/>
我做了一些研究和试验,根据问题和您的xml更新答案-并对其进行纠正
<Button
android:id="@+id/On"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="92dp"
android:text="Prender"
app:layout_constraintEnd_toStartOf="@+id/Off"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView"
<tag android:id="@+id/on_tag" android:value="1" />
</Button>
只需对getTag()进行微小的更改,而不是view.getTag()
即可通过id,如下所示。
btnOn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e(TAG,String.valueOf(v.getTag(R.id.on_tag)));
}
});
在更新的答案中,即标记为单独的标记,我们可以有多个标记值 分配给视图。抱歉,我忘记了标签,因为从未 经常使用,我通常将标签设置为仅在运行时查看。但是感谢你和 document
与下面相同的Kotlin代码
On.setOnClickListener(View.OnClickListener { v ->
Log.e(
FragmentActivity.TAG,
v.getTag(R.id.on_tag)?.toString()
)
})
我在on_tag
中将id
中的tag
用于api.domain.com
。另外,您还需要String,而getTag返回Object以便将其转换为字符串。