2014-02-05 8 views
2

У меня есть этот макет, но кнопка не доступна. Я пробовал решения с предыдущих сообщений, таких как добавление android:focusable="false" к кнопке или списку или линейному расположению, но оно не работало. Я попытался добавить: button.setFocusable(false) после кнопки OnClickListener, но также не работал. я даже попытался добавить: android:descendantFocusability="blocksDescendants" к основной линейной компоновке, но проблема все еще существует. Спасибо. Кнопка недоступна при добавлении в listview

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 

    <EditText 
     android:id="@+id/search_field" 
     android:layout_width="181dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1.25" 
     android:ems="10" 
     android:hint="Search" 
     android:textColor="#1F6260" /> 

    <Button 
     android:id="@+id/refresh_button" 
     android:layout_width="34dp" 
     android:layout_height="32dp" 
     android:background="@drawable/refresh3" /> 
</LinearLayout> 
<ListView 
    android:id="@+id/list2" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:divider="#b5b5b5" 
    android:dividerHeight="1dp" 
    android:listSelector="@drawable/list_selector"> 
</ListView> 
</LinearLayout> 

Java код:

refresh= (Button)myFragmentView.findViewById(R.id.refresh_button); 
refresh.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      ((MainTabs)getActivity()).refresh(); 
      ((MainTabs)getActivity()).getUsersList(); 
     } 
    }); 

Добавлен тост в методе OnClick, и он показал, так что мой код не работает, и ничего плохого с помощью кнопки. Простите за неудобство. Спасибо.

+0

Вы забыли закрыть первый тег LinearLayout? – Saket

+0

Я просто забыл добавить его в этот пост. –

+0

Что вы подразумеваете под словом "not clickable"? – Riskhan

ответ

1

Два способа достижения этой цели

1.

Изменить кнопку, как этот

<Button 
     android:id="@+id/refresh_button" 
     android:layout_width="34dp" 
     android:layout_height="32dp" 
     android:background="@drawable/refresh3" 
     android:clickable="true" 
     android:onClick="buttonClick" /> 

затем создать метод внутри вашей деятельности, которые должны проходить View в качестве параметра, как это.

public void buttonClick(View v) {} 

или вы можете следовать по второму пути

2.

 Button button; 
     button = (Button) findViewById(R.id.refresh_button); 
     button.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

      } 
     }); 

Надежда это поможет вам.

+0

Спасибо за ваш ответ. оказалось, что проблема в моем коде написана по методу onclick. –

Смежные вопросы