如何在选定的 edittext 视图上设置项目的文本?

How to set text of item on selected edittext view?

Image1

Image2

Image3

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

You can undersand my problem from above images. I can't set text on which I have to. I want to set text on first edittext but value is setting on recently created view.

这是我的代码

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();
    }
}

我还没有测试过这段代码,但我的想法是始终将点击的编辑文本传递给 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();
}