【问题标题】:How to set text of item on selected edittext view?如何在选定的edittext视图上设置项目的文本?
【发布时间】:2021-09-07 22:37:59
【问题描述】:

Image1

Image2

Image3

我想避免在其他编辑文本上设置文本。 我想设置我单击editext的警报列表对话框项目的文本。

你可以从上面的图片中理解我的问题。我无法设置必须设置的文本。我想在第一个 edittext 上设置文本,但值是在最近创建的视图上设置的。

这是我的代码

public class MainActivity2 extends AppCompatActivity
{
    LinearLayout parent_linear_layout;
    EditText editText;
    String value;
    Button add;

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

        parent_linear_layout = findViewById(R.id.parent_linear_layout);
        add = findViewById(R.id.button_add);

        add.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                addView();
            }
        });
    }

    private void addView()
    {
        View view = getLayoutInflater().inflate(R.layout.row_add_language2, null, false);
        parent_linear_layout.addView(view);
        editText = view.findViewById(R.id.et_name2);
        editText.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                simpleDialog();
            }
        });
    }

    public void simpleDialog()
    {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Select names");
        String[] array = getResources().getStringArray(R.array.language);
        builder.setSingleChoiceItems(array, -1, new DialogInterface.OnClickListener()
        {
            @Override
            public void onClick(DialogInterface dialogInterface, int i)
            {
                value = array[i];
            }
        });
        builder.setPositiveButton("Add", new DialogInterface.OnClickListener()
        {
            @Override
            public void onClick(DialogInterface dialogInterface, int i)
            {
                editText.setText(value);
            }
        });
        builder.create();
        builder.show();
    }
}

【问题讨论】:

  • 不,先生,我认为我们无法从图像中理解您的问题。请更详细地描述问题。请同时包含 activity_layout 文件。
  • 当您调用 addView() 时,您会替换之前的任何 editText。
  • 有什么解决办法

标签: android android-studio view android-edittext


【解决方案1】:

我还没有测试过这段代码,但我的想法是始终将点击的编辑文本传递给 simpleDialog,以便它将文本设置为正确的而不是最新的。

private void addView(){
    View view = getLayoutInflater().inflate(R.layout.row_add_language2, null, false);
    parent_linear_layout.addView(view);
    EditText editText = view.findViewById(R.id.et_name2);
    editText.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            EditText et = (EditText) view
            simpleDialog(et);
        }
    });
}

public void simpleDialog(EditText editText)
{
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Select names");
    String[] array = getResources().getStringArray(R.array.language);
    builder.setSingleChoiceItems(array, -1, new DialogInterface.OnClickListener()
    {
        @Override
        public void onClick(DialogInterface dialogInterface, int i)
        {
            value = array[i];
        }
    });
    builder.setPositiveButton("Add", new DialogInterface.OnClickListener()
    {
        @Override
        public void onClick(DialogInterface dialogInterface, int i)
        {
            editText.setText(value);
        }
    });
    builder.create();
    builder.show();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    • 2017-07-22
    相关资源
    最近更新 更多