Событие клика по обработке просмотра списка Android - PullRequest
0 голосов
/ 11 июня 2011

У меня есть настраиваемый вид списка, реализованный с помощью Baseadapter. Мой набор данных содержит строку и флаг. Мне нужно контролировать свойство clickable каждой строки в этом списке списка на основе этого флага. Любая помощь будет принята с благодарностью

Ответы [ 3 ]

4 голосов
/ 11 июня 2011

Привет, Subi Вы можете использовать этот код ниже для настройки clicklistener ....

 lv.setAdapter(new ArrayAdapter(ClassName.this)); 
 lv.setOnItemClickListener(new AdapterView.OnItemClickListener() 
 { 
      @Override 
      public void onItemClick(AdapterView arg0, View arg1,int arg2, long arg3) 
      { 
      } 
 });

где arrayAdapter - это базовый адаптер вашего класса, расширяющий базовый адаптер ... Надеюсь, это поможет ...

1 голос
/ 11 июня 2011

Я понимаю, что ваш набор данных - это коллекция объектов данных, которая содержит строку и флаг.В этом случае вы можете override isEnabled(int position) в вашем базовом адаптере, как это

public boolean isEnabled(int position){
    return myDataSet.get(position).getFlag();// returning true here will make that item clickable
}

Обратите внимание, что я имею в виду мой объект данных соответствующей позиции.

0 голосов
/ 11 июня 2011

Если вы хотите, чтобы представление списка с настраиваемыми свойствами попыталось реализовать собственный настраиваемый адаптер, который расширяет BaseAdapter

public class CustomListAdapter extends BaseAdapter {
private  ArrayList<Generics> allElementDetails;

private LayoutInflater mInflater;

public CustomListAdapter(Context context, ArrayList<Generics> results) {
    allElementDetails = results;
    mInflater = LayoutInflater.from(context);

}
public int getCount() {
    return allElementDetails.size();        
}
public Object getItem(int position) {
    return allElementDetails.get(position);
}
public long getItemId(int position) {
    return position;
}
public View getView(int position, View convertView, ViewGroup parent) 
{
    convertView = mInflater.inflate(R.layout.filedialog, null);
    ImageView imageview = (ImageView) convertView.findViewById(R.id.imageview);
    TextView textview = (TextView) convertView.findViewById(R.id.textview);
    if(flag==true)
             convertview.setClickable(true) 
     else
             convertview.setClickable(false); 
    return convertView;
}     

}

, теперь используйте listview.setOnItemClickListener для применения действий, т.е.будет работать, когда кликабельный вид нажал.

Я думаю, что это может помочь вам ....

...