android TextView选择选项

时间:2013-09-27 02:52:46

标签: android textview

目前我在活动中显示两个文本。 例如:“第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);

3 个答案:

答案 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;选定的视图是视图   突出显示。