2012-07-12 27 views
5

PopUpwindow içinde metin görünümleri ile kullanıyorum. Sorun şu ki, metin görüntülerinden herhangi birine tıkladığımda, arka plan rengi değişmiyor ancak metin görünümü odaklandığında ancak tıklamada değilken değişiyor.textview arka plan rengi üzerinde popupwindow değiştirmiyor

<item android:state_focused="true" android:drawable="@drawable/focused" />  
<item android:state_pressed="true" android:drawable="@drawable/pressed" /> 
<item android:drawable="@drawable/priornone" /> <!-- default --> </selector> 

yılında: Bu benim TextView'un arka plan seçici

çıkmaktadır: i popupwindow görevden ve ben o zaman popupwindow görevden yoksa arka plan rengi değişir seçicinin göre ediyorum tıkladıktan sonra

: popupwindow için

TextView manage_list = (TextView)popupView.findViewById(R.id.manage_lists); 
manage_list.setOnClickListener(new View.OnClickListener(){ 

public void onClick(View v) 
{ 

    Intent myIntent = new Intent(v.getContext(),ManageList.class); 
     popupWindow.dismiss(); 
    startActivity(myIntent); 

}}); 

düzen dosyası: benim popupwindow i yapıyorum bütün bu

<?xml version="1.0" encoding="utf-8"?> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
    android:background="@drawable/pop_menu_bg" 
android:orientation="vertical" 
    > 

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/manage_lists" 
    android:text="Manage lists" 
    android:background="@drawable/my_drawable" 
> 
</TextView> 


</LinearLayout> 

Eğer popupwindow görevini reddetme yapmazsam, oldukça garip davranışı her şey iyi çalışır, ancak eğer popupview penceresini tıklatırsam, textview arka planı değişmez.

Neyi yanlış yapıyorum? Herhangi bir yardım takdir edilecektir.

cevap

0

ben Yukarıdaki kod kullanıyorsanız, sen iyi olacağına inanıyoruz:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_focused="true" android:drawable="@drawable/focused" /> 
<item android:state_pressed="true" android:drawable="@drawable/activated" /> 
<item android:drawable="@drawable/priornone" /> 
</selector> 

bir maddeyi iki farklı durumu tanımlamak mümkün değil.

Bu yardımcı olur umarım.

+0

Öneri için teşekkürler, ancak yardımcı olmadı, hala textview arka planı tıklamada değişmiyor. – kay

+0

@kay Düzen xml dosyanızı gönderir misiniz? Bu kodun ve sorunuzu cevaplayan diğer kişilerin kodlarının doğru olduğuna inanıyorum, bu yüzden sorun başka bir yerde olabilir. – Angelo

+0

Yerleşim dosyasını yayınladım. – kay

0

// Ayrıca, android:state_focused="true" doğru olduğunda android:state_pressed="true" kaldırmanız gerekir.

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
      android:drawable="@drawable/button_pressed" /> <!-- pressed --> 
    <item android:state_focused="true" 
      android:drawable="@drawable/button_focused" /> <!-- focused --> 
    <item android:state_hovered="true" 
      android:drawable="@drawable/button_focused" /> <!-- hovered --> 
    <item android:drawable="@drawable/button_normal" /> <!-- default --> 
</selector> 

refer here:

DÜZENLEME: bunu, android:clickable="false"

+0

önerinizi denedi, ancak yardımcı olmadı, teşekkürler. – kay

+0

@kay Sorununuzu çözdüm. benim düzenlenmiş cevabımı gör. –

+0

da pedma işe yaramadı. Tıkladığımdan sonra neler oluyor bu metin görünümü arka plan şeffaflaşıyor ve popupwindow işten çıkarılıyor. – kay

0

Sen Checkbox gibi TextView kullanacak gibi LinearLayout özelliğini vermek değil ihtiyaç?

Bunu denemek için bir boole bayrağı kullanın.

private boolean clicked = false; 

// ... 

mytextView.setOnClickListener(new OnClickListener(){ 
    @Override 
    public void onClick(View v){ 
     clicked = !clicked; 

     if(clicked){ 
      mytextView.setBackgroundColor(yourcolorclicked); 
     }else{ 
      mytextView.setBackgroundColor(yourcolorunclicked); 
     } 
     mytextView.invalidate(); 
    } 
}); 
+0

önerinizi denedi ancak yardımcı olmadı, teşekkürler. – kay

0

Adlandırma çakışmanız olup olmadığını kontrol edin. Değişikliklerinizin hiçbirinin gösterilmemesi durumunda, içe aktarılan kitaplıkla çakışan bir adlandırma sorunu nedeniyle çalışma olasılığınız ana sorununuz olabilir.