有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何为充气后的每个EditText设置ID?

我做了这些代码。 每次我点击按钮,一个编辑文本就会在滚动布局中膨胀。 我怎样才能得到每次充气时的ID? 去计算每一个的价值

ScrollView scrollview;
LinearLayout  linearLayout;
LinearLayout.LayoutParams layoutParams;
//EditText hello;
static int i = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);



    Button sum_1 = (Button)findViewById(R.id.sum);


    scrollview = (ScrollView)findViewById(R.id.scrollview);
    linearLayout = (LinearLayout)findViewById(R.id.gamehistory);
    Button b = (Button)findViewById(R.id.Button01);
    layoutParams = new LinearLayout.LayoutParams
            (ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

    b.setOnClickListener(new View.OnClickListener(){


        public void onClick(View v) {



                EditText hello = new EditText(MainActivity.this);

                hello.setText("enter value" + i++);
                linearLayout.addView(hello, layoutParams);

                hello.setId(i++);


        }

    });

共 (2) 个答案

  1. # 1 楼答案

            b.setOnClickListener(new View.OnClickListener(){
    
    
            public void onClick(View v) {
    
    
    
                    EditText hello = new EditText(MainActivity.this);
    
                    hello.setText("enter value" + i++);
                    linearLayout.addView(hello, layoutParams);
    
                    hello.setId(i++);
    
                   hello.setTag("edit");
            }
    
        });
    
    
    
    int childcount = linearLayout.getChildCount();
        for (int i = 0; i < childcount; i++) {
                 View v1 = linearLayout.getChildAt(i);
                if(v1.getTag.equls("edit"){
    
                        System.out.println(v1..getId());
                 }
    
        }
    
  2. # 2 楼答案

    您想要向布局中添加ID的唯一原因是为了在代码中获得该视图。。在这里,您可以访问编辑文本

    简单的做法是将所有编辑文本添加到列表中,然后从列表中使用它们 甚至是编辑文本[]