2013-04-10 48 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")); 


     } 
    });