当前位置: 首页 > 知识库问答 >
问题:

我想添加动态布局与文本视图和编辑文本按钮单击N级

祁驰
2023-03-14

这需要为N级…当用户点击添加电话视图将被添加…

怎么做??

共有1个答案

乜承嗣
2023-03-14

试试这个密码。这可能会对你有所帮助。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

<Button
    android:id="@+id/btn_Click"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:text="Click" />

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

在Activity class on按钮中,单击只需使用下面的方法。并确保声明一个int变量(index),这将帮助您在最后添加新的视图。

 int index=0;
 linearView = (LinearLayout) findViewById(R.id.linearView);

@OnClick(R.id.btn_Click)
public void click() {
    LinearLayout mainLinearLayout = new LinearLayout(this);
    mainLinearLayout.setOrientation(LinearLayout.VERTICAL);

    LinearLayout.LayoutParams mainParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    mainLinearLayout.setLayoutParams(mainParams);
    mainLinearLayout.setGravity(Gravity.CENTER);

    LinearLayout firstChildLinearLayout = new LinearLayout(this);
    firstChildLinearLayout.setOrientation(LinearLayout.HORIZONTAL);

    LinearLayout.LayoutParams firstChildParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
    firstChildLinearLayout.setLayoutParams(firstChildParams);

    TextView textView = new TextView(this);
    LinearLayout.LayoutParams txtParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT);
    txtParams.setMarginStart(5);
    txtParams.setMarginEnd(10);
    textView.setGravity(Gravity.CENTER_VERTICAL);
    textView.setLayoutParams(txtParams);

    textView.setCompoundDrawablesWithIntrinsicBounds(getResources().getDrawable(R.drawable.ic_foreground), null, null, null);
    textView.setText("mobile  >");

    EditText editText = new EditText(this);
    LinearLayout.LayoutParams etParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT);
    etParams.weight = 1;
    editText.setBackground(null);
    editText.setLayoutParams(etParams);


    firstChildLinearLayout.addView(textView, 0);
    firstChildLinearLayout.addView(editText, 1);

    LinearLayout secondChildLinearLayout = new LinearLayout(this);
    secondChildLinearLayout.setOrientation(LinearLayout.HORIZONTAL);
    secondChildLinearLayout.setBackgroundColor(getResources().getColor(R.color.color_grey));

    LinearLayout.LayoutParams secondChildParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 1);
    secondChildLinearLayout.setLayoutParams(secondChildParams);


    mainLinearLayout.addView(firstChildLinearLayout, 0);
    mainLinearLayout.addView(secondChildLinearLayout, 1);

    linearView.addView(mainLinearLayout, index);

    index++;
}

因此,要从EditText中获取值,请使用以下代码。我已经在Toast中显示了这个值,您可以使用String数组来存储所有动态创建的EditText值。

    public void getAllEditTextValues(View view) {
    View v = null;
    for (int i = 0; i < linearView.getChildCount(); i++) {
        v = linearView.getChildAt(i);
        if (v instanceof LinearLayout) {
            View tempView = ((LinearLayout) v).getChildAt(0);
            View et = ((LinearLayout) tempView).getChildAt(1);
            String etValue = null;
            if (et instanceof EditText) {
                etValue = ((EditText) et).getText().toString();
            }
            Toast.makeText(this, "" + etValue, Toast.LENGTH_SHORT).show();
            // Use Array to Store all values of EditText
        }
    }
}
 类似资料:
  • 谁能帮我知道哪里出了问题?还有其他方法吗?提前感谢!

  • 我想制作按钮来调整我的文本。有一些按钮可以使文本视图变大、变小,在斜体和粗体之间来回切换。 我想编辑名为“text”的文本视图 在下面的代码中,当我单击“butBig”或“butSmall”按钮时,两个按钮都做了相同的事情,它使我的文本大小增加,但不是增加5,它变得非常大。当我再次点击任意一个按钮时,TextView消失了,就像它对于框架来说太大了一样。 对于斜体和粗体,我这里的代码确实有效,但有

  • 有没有可能用硒点击具有相同文本的乘法按钮?

  • 我需要一些android编程的帮助。所以onbutton click我在icite方法中调用。基本上,当单击按钮时,所有文本框文本都将转换为一个新变量上的字符串。之后,我将所有变量组合成一个名为total的字符串。然后将标签textView10的文本更改为字符串total。然而,它只是崩溃了我的应用程序。你知道我可能做错了什么吗?我的猫: 代码

  • 我正在经历一个问题。 XML编码 Java编码 我希望当我单击editText时,当前文本必须是dissapperar。但是当我单击 单击事件工作正常,但光标不再位于编辑文本处。这意味着如果要输入一些新文本,那么即使光标不在编辑文本,如何输入新文本,如果我使用 然后单击事件不起作用。但可用于任何新编辑。问题是什么?我知道这是个愚蠢的错误,但我不知道在哪里。提前感谢大家。

  • 我想学的是, 当点击按钮时,一个新的纯文本(可编辑)应该出现在我在UI中创建的默认纯文本下面,该纯文本与默认纯文本具有相同的属性(例如,相同的宽度和高度),并且每个纯文本之间有一些空白。 我的项目布局类型是constraint layout,我想把我的按钮放在UI的右下角,我已经用constraint layout归档了。 通过浏览堆栈溢出和其他通过谷歌, 我所看到的只是在线性布局中添加纯文本,如