gpt4 book ai didi

android - 一般访问 TextView

转载 作者:太空狗 更新时间:2023-10-29 12:56:18 24 4
gpt4 key购买 nike

我有一个包含八个 TextView 的 Android Activity ,名为 tvStat1、tvStat2、...、tvStat8。我有一个以整数作为参数的函数。我想要做的是这样的:

public void incrementScore(int StatisticCategory){
String s "R.id.tvStat" + String.ValueOf(StatisticCategory);
TextView tvGeneric = (TextView)findViewById(s);
// ... do something with the text in the generic TextView...
}

当然,这不起作用,因为 findViewById 方法只接受一个整数作为参数,因此不喜欢我根据传入参数识别通用 TextView 的方式。由于我只有八个 TextView,因此编写 switch 语句并不太费力......但我认为必须有更好的方法。有什么想法吗?

最佳答案

您可以使用 ViewGroup.getChildCount()ViewGroup.getChildAt() .这是一个例子。


假设你有布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

<LinearLayout
android:id="@+id/text_group"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

</LinearLayout>
</LinearLayout>

您可以使用下一个代码将文本分配给 TextView:

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

LinearLayout textGroup = (LinearLayout)findViewById(R.id.text_group);

for(int i = 0; i < textGroup.getChildCount(); i++)
{
TextView text = (TextView)textGroup.getChildAt(i);
text.setText("This is child #"+i);
}

enter image description here

关于android - 一般访问 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6487280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com