2013-04-10 60 views
0

我有三个基于布局的按钮。我开发这个项目的Android棒,所以用户将使用键盘。我想显示选择状态时,用户之间使用箭头键在列表/网格视图中相同的按钮之间导航。如何在用户使用键盘时添加制作按钮?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! 
       } 
      } 
    ); 

回答

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


     } 
    });