2015-12-05 2 views
0

Да, я знаю, что это было задано много раз. Я пробовал все предлагаемые решения, но не работал для меня. Поэтому я снова задаю один и тот же вопрос.setOnItemClickListener не работает, несмотря на удаление фокуса на все виды

Это мой файл макета

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="1dp" 
    android:background="@drawable/view_selector" 
    android:clickable="true" 
    android:descendantFocusability="blocksDescendants" 
    android:orientation="horizontal" 
    android:padding="3dp"> 

    <TextView android:id="@+id/calcName" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="3dp" 
     android:layout_marginTop="3dp" 
     android:layout_weight="0.9" 
     android:gravity="start" 
     android:clickable="false" 
     android:focusable="false" 
     android:focusableInTouchMode="false" 
     android:textIsSelectable="false" 
     android:textColor="#FF000000" /> 

    <ImageView android:id="@+id/nextImg" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_gravity="end|right" 
     android:layout_weight="0.1" 
     android:clickable="false" 
     android:focusable="false" 
     android:focusableInTouchMode="false" 
     android:contentDescription="@string/strImg" 
     android:src="@drawable/next" /> 
</LinearLayout> 

Как вы можете видеть, я сделал каждый вид рыхлого фокусе, даже вид корня делает это.

Тогда вот мой адаптер класса

import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 

import com.everythingrf.android.rfcalculators.R; 

import java.util.ArrayList; 
import java.util.List; 


    public class CommonListAdapter extends ArrayAdapter<String> { 


     private Context mContext; 
     private ArrayList<String> mDataObjects; 
     private int layout; 

     public CommonListAdapter(Context context, int resource, ArrayList<String> objects) { 
      super(context, resource, objects); 
      mContext = context; 
      layout = resource; 
      mDataObjects = objects; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      ViewHolder holder = null; 

      if (convertView == null) { 
       holder = new ViewHolder(); 
       LayoutInflater inflater = (LayoutInflater) mContext 
         .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

       convertView = inflater.inflate(layout, parent, false); 

       holder.calcName = (TextView) convertView.findViewById(R.id.calcName); 
       holder.nextImg = (ImageView) convertView.findViewById(R.id.nextImg); 

       convertView.setTag(holder); 
      } else { 
       holder = (ViewHolder) convertView.getTag(); 
      } 

      holder.calcName.setFocusable(false); 
      holder.nextImg.setFocusable(false); 

      holder.calcName.setText(mDataObjects.get(position)); 


      return convertView; 
     } 

     public static class ViewHolder{ 
      TextView calcName; 
      ImageView nextImg; 
     } 
    } 

Даже пытался с адаптером

Вот мой главный класс, который вызывает onItemClickListener

myCalcList.setOnItemClickListener(this); 
@Override 
    public void onItemClick(AdapterView<?> adapterView, View view, int pos, long id) { 
     Log.e("Main","item click"); 
     String selectedCalc = commonList.get(pos); 
     openSelectedCalc(selectedCalc); 
    } 

Заранее спасибо :)

+0

Вы получаете какую-либо ошибку? –

+0

@bhargav nope, данные загружаются отлично ... когда я нажимаю на него, ничего не происходит..Лог не печатает, даже прикрепленный отладчик внутри метода не называется – Swapnil

+0

. Помогите объяснить, почему downvote? – Swapnil

ответ

1

Пожалуйста, просто удалить андроида: кликабельны = «истинный» из макета строк, это будет работать.

Поскольку каждая строка потребляет событие, которое предотвращает выполнение listview для onItemClick.

+0

Да, это сработало ... как я мог его пропустить .. спасибо. – Swapnil

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