0

我有三个基于布局的按钮。我正在为android棒开发这个项目,所以用户将使用键盘。当用户使用箭头键在按钮之间导航时,我想显示选定状态,就像我们在列表/网格视图中一样。用户使用键盘时如何添加选择的制作按钮?

    <LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="90dip"
    android:id="@+id/linear_top_button"
    android:orientation="horizontal" 
    android:paddingLeft="15dip"
    android:gravity="center_vertical"
    android:background="#041F34"
    android:clickable="true"
    android:focusable="true">
    <TextView
        android:id="@+id/date_text"
        android:layout_width="wrap_content"
        android:layout_height="70dip"
        android:text="06.56"
        android:textColor="#475B6D"
        android:typeface="sans" 
        android:textSize="22sp"
        android:textStyle="bold"
        android:gravity="center_vertical"/>
    <TextView
        android:id="@+id/day_text"
        android:layout_width="wrap_content"
        android:layout_height="70dip"
        android:paddingLeft="8dip"
        android:text="Day"
        android:textColor="#FFFFFF"
        android:typeface="sans" 
        android:textSize="22sp"
        android:textStyle="bold"
        android:gravity="center_vertical"/>

</LinearLayout>
 <LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="90dip"
    android:orientation="horizontal" 
    android:paddingLeft="15dip"
    android:id="@+id/linear_second_button"
    android:gravity="center_vertical"
    android:clickable="true"
    android:background="#041F34"
    android:layout_marginTop="2dip"
    android:focusable="true">
    <TextView
        android:id="@+id/date_text"
        android:layout_width="wrap_content"
        android:layout_height="70dip"
        android:text="06.56"
        android:textColor="#475B6D"
        android:typeface="sans" 
        android:textSize="22sp"
        android:textStyle="bold"
        android:gravity="center_vertical"/>
    <TextView
        android:id="@+id/day_text"
        android:layout_width="wrap_content"
        android:layout_height="70dip"
        android:paddingLeft="8dip"
        android:text="Day"
        android:textColor="#FFFFFF"
        android:typeface="sans" 
        android:textSize="22sp"
        android:textStyle="bold"
        android:gravity="center_vertical"/>

</LinearLayout>

    <LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="90dip"
    android:orientation="horizontal" 
    android:paddingLeft="15dip"
    android:layout_marginTop="2dip"
    android:id="@+id/linear_third_button"
    android:gravity="center_vertical"
    android:background="#041F34"
    android:clickable="true"
    android:focusable="true">
    <TextView
        android:id="@+id/date_text"
        android:layout_width="wrap_content"
        android:layout_height="70dip"
        android:text="06.56"
        android:textColor="#475B6D"
        android:typeface="sans" 
        android:textSize="22sp"
        android:textStyle="bold"
        android:gravity="center_vertical"/>
    <TextView
        android:id="@+id/day_text"
        android:layout_width="wrap_content"
        android:layout_height="70dip"
        android:paddingLeft="8dip"
        android:text="Day"
        android:textColor="#FFFFFF"
        android:typeface="sans" 
        android:textSize="22sp"
        android:textStyle="bold"
        android:gravity="center_vertical"/>

</LinearLayout>

_oneButton.setOnClickListener(
            new View.OnClickListener() {    
                @Override
                public void onClick(View v) {
                    _oneButton.setBackgroundColor(Color.parseColor("#163040"));//#163040//#041F34 n
                    _twoButton.setBackgroundColor(Color.parseColor("#041F34"));
                    _threeButton.setBackgroundColor(Color.parseColor("#041F34"));
                    Log.d("p","1"); //Never called!
                }
            }
      );
    _twoButton.setOnClickListener(
            new View.OnClickListener() {    
                @Override
                public void onClick(View v) {
                    _twoButton.setBackgroundColor(Color.parseColor("#163040"));//#163040//#041F34 n
                    _oneButton.setBackgroundColor(Color.parseColor("#041F34"));
                    _threeButton.setBackgroundColor(Color.parseColor("#041F34"));
                    Log.d("p","2"); //Never called!
                }
            }
      );
    _threeButton.setOnClickListener(
            new View.OnClickListener() {    
                @Override
                public void onClick(View v) {
                    _threeButton.setBackgroundColor(Color.parseColor("#163040"));//#163040//#041F34 n
                    _oneButton.setBackgroundColor(Color.parseColor("#041F34"));
                    _twoButton.setBackgroundColor(Color.parseColor("#041F34"));
                    Log.d("p","3"); //Never called!
                }
            }
      );
4

1 回答 1

0

通过实现 onfocus 侦听器解决了问题。

    _threeButton.setOnFocusChangeListener(new   View.OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            // TODO Auto-generated method stub
            _threeButton.setBackgroundColor(Color.parseColor("#163040"));//#163040//#041F34 n
            _oneButton.setBackgroundColor(Color.parseColor("#041F34"));
            _twoButton.setBackgroundColor(Color.parseColor("#041F34"));


        }
    }); 
于 2013-04-10T22:40:56.017 回答