android - 同一活动中的Android多个数字选择器
问题描述
我需要在一项活动中放置三个数字选择器。
我的问题是,当我单击屏幕时,它们都“变得活跃”。
单击相应的按钮时,我希望它们中的每一个都“变得活跃”。我认为问题出在“onClick”功能中,但我不知道如何解决。
public class personal_data extends AppCompatActivity implements View.OnClickListener {
TextView e_number;
Button e_numberpicker;
TextView a_number;
Button a_numberpicker;
TextView p_number;
Button p_numberpicker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_personal_data);
e_number = (TextView) findViewById(R.id.t_e);
e_numberpicker = (Button)findViewById(R.id.b_e);
e_numberpicker.setOnClickListener(this);
a_number = (TextView) findViewById(R.id.t_a);
a_numberpicker = (Button)findViewById(R.id.b_a);
a_numberpicker.setOnClickListener(this);
p_number = (TextView) findViewById(R.id.t_p);
p_numberpicker = (Button)findViewById(R.id.b_p);
p_numberpicker.setOnClickListener(this);
}
@Override
public void onClick(View v){
e_setNumberpicker();
a_setNumberpicker();
p_setNumberpicker();
}
private void e_setNumberpicker() {
NumberPicker e_myNumberPicker = new NumberPicker(this);
e_myNumberPicker.setMaxValue(110);
e_myNumberPicker.setMinValue(0);
NumberPicker.OnValueChangeListener myValChangedListener = new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
e_number.setText(""+newVal);
}
};
e_myNumberPicker.setOnValueChangedListener(myValChangedListener);
AlertDialog.Builder e_builder = new AlertDialog.Builder(this).setView(e_myNumberPicker);
e_builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which){
}
});
e_builder.show();
}
private void a_setNumberpicker() {
NumberPicker a_myNumberPicker = new NumberPicker(this);
a_myNumberPicker.setMaxValue(210);
a_myNumberPicker.setMinValue(0);
NumberPicker.OnValueChangeListener myValChangedListener = new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
a_number.setText(""+newVal);
}
};
a_myNumberPicker.setOnValueChangedListener(myValChangedListener);
AlertDialog.Builder a_builder = new AlertDialog.Builder(this).setView(a_myNumberPicker);
a_builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which){
}
});
a_builder.show();
}
private void p_setNumberpicker() {
NumberPicker p_myNumberPicker = new NumberPicker(this);
p_myNumberPicker.setMaxValue(150);
p_myNumberPicker.setMinValue(0);
NumberPicker.OnValueChangeListener myValChangedListener = new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
p_number.setText(""+newVal);
}
};
p_myNumberPicker.setOnValueChangedListener(myValChangedListener);
AlertDialog.Builder p_builder = new AlertDialog.Builder(this).setView(p_myNumberPicker);
p_builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which){
}
});
p_builder.show();
}
}
有什么建议吗?
非常感谢
解决方案
您需要检查哪个视图触发了onClick
@Override
public void onClick(View v){
if (v == e_numberpicker) {
e_setNumberpicker();
}
if (v == a_numberpicker) {
a_setNumberpicker();
}
if (v == [_numberpicker) {
p_setNumberpicker();
}
}
推荐阅读
- sql - 如何通过触发器知道谁在运行 DELETE
- generics - Ada 含糊不清的表达与 Get
- java - 如何在日历中每个不同的点击日期保存不同的文本?
- scala - 将列表转换为 Map 中的 TreeMap
- selenium - WebElement click() 在 Selenium 中不起作用
- java - 比较 id 的两个属性列表并仅从 list1 中删除该对象,而不是从 list2 中删除,然后合并到 java 中的单个列表中
- html - 如何在引导程序中为多行和多列制作水平滚动条?
- python - 创建一个新列,它是 python 中另一列的 value_counts
- python-3.x - sqlite3.ProgrammingError:在线程中创建的 SQLite 对象只能在同一线程中使用。在 django 2.2 中
- python - django模板获取键和值分开显示