如何在选定的 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();
}
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();
}