克隆textview以将其附加到ViewGroup

我有一个用XML定义的ViewGroup里面有一个视图,在onCreate时我想要一个variables。
我不想经历使用listview +适配器的麻烦导致它明显矫枉过正因为我知道列表不会因为onCreate()而改变
这或多或少是我想要的代码。

TextView mytextview = myViewGroup.findViewById(R.id.mytext); for(String test : strings){ mytextview = mytextview.clone(); mytextview.setText(test); myViewGroup.addView(mytextview); } 

但它没有用。

  • 如何将textview集中在linearlayout中
  • 如何在Android中扩展XML中的视图?
  • 如何使用三种布局的视图鳍状肢?
  • 带有片段的Android mapview无法添加两次?
  • 从右到左ProgressBar?
  • 也许使用inflater,并将textview放在外部布局文件中:

     View v = LayoutInflater.from(this).inflate(R.layout.textview_include, null); viewGroup.addView(v); 

    如果这样做,您很可能会为以这种方式创建的每个视图获得完全相同的ID。 这意味着做((TextView)v)。setText(“some text”); 将在先前从同一布局中充气的每个TextView上调用。 您仍然可以这样做,但是您应该调用setId()并使用一些合理的方法来确保连续两次获得相同的id – 增量或通用时间等。

    此外,我认为Android为动态创建的id保留了一定范围的id。 您可以避免此范围内的ID; 但老实说,我不知道id系统是否有效,所以我在这一点上可能是错的。

    使用Mathias Lin的代码并使用javahead76中的提示:

     LinearLayout x = (LinearLayout) findViewById(R.id.container); for (int i = 0; i < 5; i++) { View c = LayoutInflater.from(this).inflate(R.layout.singlerow, x); TextView t = ((TextView)findViewById(R.id.textView1)); t.setId(i+10000); t.setText("text"+i); } TextView b = (TextView) findViewById(10003); b.setText("10003");