gpt4 book ai didi

java - 在 Android 中访问动态创建的 TextView

转载 作者:行者123 更新时间:2023-12-01 16:32:29 25 4
gpt4 key购买 nike

我有一个网格布局,其中填充了数字 1 到 90,这些数字是在主 Activity 的 onCreate 上动态创建的。现在有一个按钮,单击随机数生成器会随机生成数字 1 到 90,不重复。当数字生成时,应该在之前创建的网格布局中删除该数字。 enter image description here

编辑:这是我用来在 gridLayout 中生成 TextView 的代码。

public void generateNumber(){
GridLayout gl = (GridLayout)findViewById(R.id.allnumbers);
gl.setRowCount(9);
gl.setColumnCount(10);
gl.setUseDefaultMargins(true);
for(int i =0;i<90;i++){
TextView tv = new TextView(getApplicationContext());
tv.setTextSize(24);
tv.setPadding(10,10,10,10);
tv.setId(i);
int j=i+1;
tv.setText(""+j);
tv.setPadding(5,5,5,5);
gl.addView(tv,i);
}

最佳答案

您需要做的第一件事是访问TextView,然后您可以更改它或您想用它执行任何操作。因此, GridLayout 包含一个名为 getChildAt() 的方法,并且它采用一个位置作为输入。

因此,要访问该 TextView,您可以执行以下操作:

TextView v = Parent.getChildAt(i);//i是你想要改变的位置

所以,我对你的回答的理解是你想要访问随机生成的数字的相同TextView,假设随机数是95你想要访问TextView其中包含 90。因此,您可以使用:

int position = yourRandomNumber - 1  
TextView textView = gl.getChildAt(position); //gl is your GridLayout
// Why this -1? Because any array, even in Gridview, count starts from 0 to 89 in your case
//(total 90) so a TextView which contains 58 have its postition as 57 (-1).
//Now to set, it striked-out, do
textView.setPaintFlags(someTextView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

这将删除包含您想要的值的文本。

关于java - 在 Android 中访问动态创建的 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62017983/

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