2016-11-18 3 views
0
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(final AdapterView<?> parent, View view, final int position, long id) 
     { 

     // My code is here. I want make my image clickable. I don't want make it clickable in my CustomAdapter getView() method because it doesn't allows me open DialogFragment from there. 
     // I already setted in xml of image clickable="true" and focusable = "false" 
     //I'll admit for any help and thanks in advance 

     } 
} 
+1

, пожалуйста, отредактируйте свой вопрос –

ответ

3

Если вы берете образ Onclick из адаптера, вы не можете взять setOnItemClickListener из события listview. Я предложил вам взять Onclick и вместо setOnItemClickListener взять Onclick из адаптера.

+0

Да, но если я беру onClick из моего адаптера в метод getView(), я не могу получить там диспетчер фрагментов для открытия DialogFragment –

+0

Положить тост на метод onclick(), проверить погоду это работа или нет, если он работает, тогда проблема заключается в фрагменте диалога – Vadivel

+0

Несколько минут, и я сделаю это и загрузите код –

1

Сначала вы должны добавить OnClickListener для ImageView в классе адаптера, как

viewHolder.button1.setOnClickListener(new OnClickListener() { 

@Override 
public void onClick(View v) { 
    ((ListView) parent).performItemClick(v, position, 0); // Let the event be handled in onItemClick() 
} 

});

Тогда после того, как вы можете получить доступ к ImageView в onItemClick как

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    long viewId = view.getId(); 


if (viewId == R.id.button1) { 
     Toast.makeText(this, "Button 1 clicked", Toast.LENGTH_SHORT).show(); 
    } else if (viewId == R.id.button2) { 
     Toast.makeText(this, "Button 2 clicked", Toast.LENGTH_SHORT).show(); 
    } else { 
     Toast.makeText(this, "ListView clicked" + id, Toast.LENGTH_SHORT).show(); 
    } 
} 

Наслаждайтесь! ...

+0

Mehul благодарит человека, он отлично работает !!! –

+0

Если это прекрасно, пожалуйста, пожалуйста, голосуйте за меня .... !! –

+0

Я нажимаю кнопку для голосования, но не меняет номер голоса, не могу понять, почему. –

0

Это не должно быть проблемой, чтобы показать диалоговое окно с адаптером. Если адаптеру нужно что-то, что у него нет, то вы можете добавить поле для адаптера с некоторым слушателем как private final OnImageClickListener и создать интерфейс:

public interface OnImageClickListener { 
    void onImageClicked(View view, int position, int id); 
} 

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

+0

Спасибо Малкольм, я тоже буду использовать ваш совет. быть вторым хорошим способом решить мою проблему –

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