目前我在活动中显示两个文本。 例如:“第1组”和“第2组”。
我让用户选择文字(就像一个按钮)。
我需要找出是否选择了上面显示的文字,然后更改背景颜色。 这是我用于此的代码。 tv.isSelected()总是计算为'false'。任何人都可以告诉我我做错了什么。 “isSelected()”方法是否用于与我使用它不同的目的?
TextView textView = new TextView(this);
textView.setText("Group 1");
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TextView tv = (TextView) view;
if (tv.isSelected()) {
tv.setBackgroundColor(Color.BLUE);
} else {
tv.setBackgroundColor(Color.WHITE);
}
}
});
linearLayout.addView(textView);
答案 0 :(得分:2)
试试这个
的OnCreate() {
TextView textView = new TextView(this);
textView.setText("Group 1");
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
textView.setSelected(true);
}
});
if (textView.isSelected()) {
textView.setBackgroundColor(Color.BLUE);
} else {
textView.setBackgroundColor(Color.WHITE);
}
linearLayout.addView(textView);
}
答案 1 :(得分:1)
尝试执行以下操作:
if (tv.getId() == textBox1Id) {
firstSelected = true;
} else { firstSelected = false; }
答案 2 :(得分:0)
您可以使用boolean
变量来处理此问题:
private boolean tvSelected = false;
你的onClick方法会改变:
TextView textView = new TextView(this);
textView.setText("Group 1");
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (tvSelected) {
textView.setBackgroundColor(Color.WHITE);
tvSelected = false;
else {
tv.setBackgroundColor(Color.BLUE);
tvSelected = true;
}
});
linearLayout.addView(textView);
根据API文档 isSelected()用法:
可以选择或不选择视图。请注意,选择不一样 焦点。通常在AdapterView的上下文中选择视图 像ListView或GridView;选定的视图是视图 突出显示。