让我们说我有一个微调器(有2个项目)和一个放射性组(有2个无线电按钮)。
我想在我的布局中显示一个TextView,它将为每个选项提供不同的值:
例如我们有:
男
女
正确
简而言之,每次用户选择任何这些选项时,我都希望显示不同的文本视图。 我已经在旋转器和无线电按钮上放置了事件监听器:
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View arg1,
int arg2, long arg3) {
``// TODO Auto-generated method stub
}
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
//switch checkedId and check which spinner item is selected...
//then show the textview
}
但这有时有时不起作用 - 我有很多不同的问题。 我也尝试过类似的选择。但没有任何工作正常。
如何在没有添加额外按钮的情况下动态处理?
答案 0 :(得分:1)
希望这能更好地解释我的评论。
int selectedSpinnerItem = -1;
int selectedRadioGroupItem = -1;
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
selectedSpinnerItem = position;
updateViews();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
selectedSpinnerItem = -1;
updateViews();
}
});
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
selectedRadioGroupItem = checkedId;
updateViews();
}
});
public void updateViews(){
// Here is where you will compare the values
// and display the appropriate views.
}
答案 1 :(得分:0)
您可以创建所需的所有TextView ..
不仅仅是改变他们的可见性......
TextView v = (TextView) findViewById(R.id.text1);
v.setVisibility(View.GONE); // Or view.VISIBLE, View.INVISIBLE
因此,您可以根据逻辑查看所需的特定文本视图。 或者你可以创建2个textViews ..一个是男性/女性,一个是真/假;
我认为更好的办法就是更改一般textView中的文本..但我不确定是什么问题因为我没有代码示例可以帮助我理解
希望这会有所帮助:)