2012-07-12 28 views
5

PopUpwindowにtextviewsを使用しています。問題は、テキストビューのいずれかをクリックすると、テキストビューがフォーカスされているがクリックされていないときに変化していても、背景色は変化していない。popupwindowのクリックでtextviewの背景色が変わらない

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

に:これは私のTextViewの背景セレクタは

です:私はpopupwindowを却下し、私はその後、popupwindowを却下していない場合は、背景色の変更セレクタに従っていますクリックした後

私popupwindow私がやっているすべての本である:

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

}}); 

popupwindowためのレイアウトファイル:

<?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> 

私がpopupwindowを却下しなければ、非常に奇妙な振る舞いがうまくいくが、クリックするとpopupwindowを閉じると、textviewの背景は変わらない。

私は何をしていますか?どんな助けもありがとう。

答えて

0

私は上記のコードを使用している場合、あなたは大丈夫だろうと信じて:

<?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> 

は商品に2つの異なる状態を定義することはできません。

希望に役立ちます。

+0

提案をいただきありがとうございましたが、それでも助けにはなりませんでしたが、まだテキストビューの背景はクリックで変更されていません。 – kay

+0

@kayレイアウトXMLファイルを投稿できますか?私は、このコードとあなたの質問に答えた他のコードは正しいと考えていますので、問題はどこか別のものかもしれません。 – Angelo

+0

私はレイアウトファイルを投稿しました。 – kay

0

// android:state_focused="true"もtrueの場合、android:state_pressed="true"を削除する必要があります。

<?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:

EDIT:あなたがチェックボックスのようなあなたのTextViewを使用しますandroid:clickable="false"

+0

あなたの提案を試みたが、それは助けなかった、感謝。 – kay

+0

@kayあなたの問題があります。私の編集された答えを見てください。 –

+0

もパドマを働かなかった。クリックした後に起こっていることは、このtextviewの背景が透明になり、popupwindowが破棄されることです。 – kay

0

としてあなたのLinearLayout属性を与える必要があり、それはないですか?

これを試すにはブール値フラグを使用します。

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

あなたの提案を試みたが、それは助けてくれなかった。 – kay

0

名前の競合があるかどうかを確認してください。変更内容が表示されない場合は、インポートされたライブラリと競合するような命名問題のために機能しない可能性があなたの主な問題になる可能性があります。

関連する問題