我在循环中动态添加了TextView
。单击按钮,我想清除文本视图中的现有文本,并为其设置一些其他文本。我怎么能这样做?
这是我目前的代码:
ArrayList<String> Cheif_ComplaintNew = new ArrayList<String>();
int cc_Arraylist_length = Cheif_ComplaintNew.size();
android.widget.TextView cc_new = new android.widget.TextView(getApplicationContext());
for(int i=0; i<cc_Arraylist_length; i++)
{
cc_new.setId(i);
cc_new.setText(Cheif_ComplaintNew.get(i));
cc_new.setTextColor(getResources().getColor(R.color.black));
cc_new.setTypeface(null,android.graphics.Typeface.ITALIC);
cc_new.setTextSize(14);
cc_linearNew.addView(cc_new);
System.out.println("id"+i);
}
单击按钮,清除列表并在其中存储新数据。我希望通过清除旧数据在同一文本视图中显示新数据。
答案 0 :(得分:1)
您可以在创建文本框时将文本添加到文本框中,也可以在创建文本框时为其指定类变量,稍后您可以向其中添加文本。
TextView dynamicTextView;
...
private void CreateNewTextView()
{
dynamicTextView = Your New Text View;
}
...
private void ChangeTheText()
{
dynamicTextView.SetText("new value");
}
如果你有多个TextView,你可以创建一个TextViews的类级通用列表,并将它们添加到列表中并稍后调用它们。
您还可以创建所有TextView的地图,以便您也可以使用其键调用它们。
答案 1 :(得分:0)
我认为您可以在将标记添加到cc_new
之前将其设置为cc_linearNew
,如下所示:cc_new.setTag(i)
。当按钮单击时,您可以在循环中找到cc_linearNew.findViewByTag(i)
的TextView,并为它们设置新数据。
答案 2 :(得分:0)
你可以通过多种方式实现这一目标,其中一些方式:
parentView.findViewById(arreyOfIds(0));
parentView
中移除所有刚添加的视图,然后再次创建它们。要处理活动使用中的后退点击:
@Override
public void onBackPressed()
{
clearTextView();
}
所有这些都很简单:
private List<Integer> ids = new ArrayList<Integer>();
@Override
public void onBackPressed()
{
clearTextView();
}
private void clearTextView()
{
for(Integer id : ids)
{
TextView view = (TextView)findViewById(id);
view.setText("")
}
}
private void createTextViews()
{
ArrayList<String>Cheif_ComplaintNew = new ArrayList<String> ();
int cc_Arraylist_length=Cheif_ComplaintNew.size();
android.widget.TextView cc_new = new android.widget.TextView(getApplicationContext() );
for(int i=0; i<cc_Arraylist_length; i++)
{
ids.add(i)
cc_new.setId(i);
cc_new.setText(Cheif_ComplaintNew.get(i));
cc_new.setTextColor(getResources().getColor(R.color.black));
cc_new.setTypeface(null,android.graphics.Typeface.ITALIC);
cc_new.setTextSize(14);
cc_linearNew.addView(cc_new);
System.out.println("id"+i);
}
}
答案 3 :(得分:0)
取决于您需要动态添加到布局的TextView数量。
根据提到的代码,没有TextViews添加到布局中:Cheif_ComplaintNew.size()
将返回“0”,因此您的循环将不会被执行。
findViewById("ID_OF_THE_TEXTVIEW_NEEDED")