如何在选定的编辑文本视图中设置项目的文本



Image1

图像2

图像3

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

你可以从上面的图片中找出我的问题。我无法设置必须设置的文本。我想在第一次编辑文本时设置文本,但值是在最近创建的视图中设置的

这是我的代码

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

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

最新更新