Android 设置一些文本视图';s文本

Android 设置一些文本视图';s文本,android,eclipse,textview,Android,Eclipse,Textview,在我的项目中,我有80个文本视图。 我应该设置他们的文本从1到80一旦项目运行,他们不需要在未来改变。 除了TxtViews,我的布局中还有一些其他的东西,文本视图在ImagesView下。实际上,我有80个图像视图,下面是80个文本视图。我想动态地将TextView的文本设置为1到80。 我知道我可以在layout.xml中完成, 但这真的很耗时。 有没有办法通过代码来做到这一点? 例如,对于for循环或类似的东西?如果它们共享相同的布局(文本除外),并且可以显示为列表,则可以使用ArrayA

在我的项目中,我有80个文本视图。 我应该设置他们的文本从1到80一旦项目运行,他们不需要在未来改变。
除了TxtViews,我的布局中还有一些其他的东西,文本视图在ImagesView下。实际上,我有80个图像视图,下面是80个文本视图。我想动态地将TextView的文本设置为1到80。 我知道我可以在layout.xml中完成, 但这真的很耗时。 有没有办法通过代码来做到这一点?
例如,对于for循环或类似的东西?

如果它们共享相同的布局(文本除外),并且可以显示为列表,则可以使用ArrayAdapter并从代码传递值


如果您的
文本视图是在xml上声明的,请将它们包装到另一个视图中,以便以后可以在java代码中引用,然后只需使用
for

比如:

View view = findViewById(R.id.your_wrapper);

for(int i=0; i<((ViewGroup)view).getChildCount(); i++) {
    View nChild = ((ViewGroup)view).getChildAt(i);
    TextView tv = (TextView) nChild;
    tv.setText(String.valueOf(i + 1));
}
Java代码

LinearLayout ll = (LinearLayout) findViewById(R.id.linear);

for (int i = 1; i <= 80; i++) {
    TextView tv = new TextView(this); // Assuming you're inside an Activity.
    int count = ll.getChildCount();
    tv.setText(String.valueOf(i));

    ll.addView(tv, count, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
}
LinearLayout ll=(LinearLayout)findViewById(R.id.linear);

对于(int i=1;i在布局中创建适合您需要的视图组,例如:

<LinearLayout
    android:id="@+id/linear_layout"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
/>

然后以编程方式创建TextView实例,并将其添加到LinearLayout,如下所示:

    LinearLayout layout = (LinearLayout)findViewById(R.id.linear_layout);

    for(int i = 0; i < 80; i++) {
        TextView textView = new TextView(getContext());
        textView.setText("text" + i);
        layout.addView(textView);
    }
LinearLayout布局=(LinearLayout)findViewById(R.id.linear\u布局);
对于(int i=0;i<80;i++){
TextView TextView=newtextView(getContext());
textView.setText(“text”+i);
layout.addView(textView);
}

或者,您可以添加标记或任何东西来再次定位它们。或者,只需在布局子视图上迭代即可。

如果您知道80 Textview已修复,那么您应该使用listview

Listview好处

  • 自动内存管理
  • Listview管理索引

    • 检查以下示例

      public class MainActivity extends Activity {
      
      LinearLayout linearLayout ;
      ScrollView scrollView;
      
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          scrollView = (HorizontalScrollView) findViewById(R.id.scrollViewActivityMain);
      }
      
      private void populateTextViews() {
      
          linearLayout = new LinearLayout(this);
          linearLayout.setOrientation(LinearLayout.HORIZONTAL);
      
          //add all textViews here
          for(int i=0; i < 80; i++){
              TextView myTextView = new TextView(this);
              myTextView.setText("My TextView "+i);
              myTextView.setGravity(Gravity.CENTER);
              linearLayout.addView(myTextView);
          }
      
          scrollView.addView(linearLayout);
      }
      }
      
      公共类MainActivity扩展活动{
      线性布局线性布局;
      滚动视图滚动视图;
      @凌驾
      创建时受保护的void(Bundle savedInstanceState){
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      scrollView=(HorizontalScrollView)findViewById(R.id.scrollViewActivityMain);
      }
      私有void populateTextViews(){
      linearLayout=新的linearLayout(本);
      linearLayout.setOrientation(linearLayout.HORIZONTAL);
      //在此处添加所有文本视图
      对于(int i=0;i<80;i++){
      TextView myTextView=新的TextView(此);
      设置文本(“我的文本视图”+i);
      myTextView.setGravity(Gravity.CENTER);
      linearLayout.addView(myTextView);
      }
      scrollView.addView(线性布局);
      }
      }
      
      别忘了将滚动视图放在xml中。
      让我知道它是否适用于您…

      您可以使用for loop?或以您的方式发布代码到您的
      TextView
      s有id?如果有,您可以这样做。但请记住,这需要调用
      findViewById(id)
      多次,此操作非常耗时。请重新考虑在XML中静态设置值。您应该编写一个单独的简单程序来生成layout.XML文件您的所有TextView都在一个父布局中吗?创建您自己的自定义TextView。除TXTview外,我的代码中还有一些其他内容,因此我无法使用这些内容我认为。好吧,这是一个更易于维护的解决方案,你有什么限制?文本视图在ImagesView下。实际上我有80个ImagesView,它们下面是80个文本视图。我想动态地将文本视图的文本从1设置为80。亲爱的Tragalunas,我不想写1到80的数字。这样,我应该做同样的事情。你可以lso从循环中写入数组:string[]testArray=newstring[80];for(int i=1;ipublic class MainActivity extends Activity { LinearLayout linearLayout ; ScrollView scrollView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); scrollView = (HorizontalScrollView) findViewById(R.id.scrollViewActivityMain); } private void populateTextViews() { linearLayout = new LinearLayout(this); linearLayout.setOrientation(LinearLayout.HORIZONTAL); //add all textViews here for(int i=0; i < 80; i++){ TextView myTextView = new TextView(this); myTextView.setText("My TextView "+i); myTextView.setGravity(Gravity.CENTER); linearLayout.addView(myTextView); } scrollView.addView(linearLayout); } }