2013-09-27 74 views
0

目前我在活動中顯示兩個文本。 例如:「組1」和「組2」。android textview選擇選項

我讓用戶選擇文本(就像一個按鈕)。

我需要找出是否選擇上述顯示的文本,然後更改背景顏色。 這是我使用的代碼。 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

你想要藍色和白色被點擊每次都能正確之間進行切換?爲什麼不使用國旗? –

回答

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); 

isSelected()使用方面,根據API文檔:

可以選擇或不選擇視圖。請注意,選擇不同於 的重點。視圖通常在AdapterView (如ListView或GridView)的上下文中選擇;所選視圖是高亮顯示的 視圖。

1

儘量做到以下幾點:

if (tv.getId() == textBox1Id) { 
     firstSelected = true; 
} else { firstSelected = false; } 
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); 

}