У меня есть Custom ListView, который имеет ImageView и TextView. и я реализовал ListView.setOnItemSelectedListener();
Но это способ сделать как ImageView, так и TextView Clickable (отдельно), я имею в виду, что Click on ImageView должен вызвать ActivityA, а Click on TextView должен вызвать ActivityB?
Да, вы можете сделать это внутри самого класса адаптера. Просто установите прослушиватели кликов для ImageView и Textview в классе Adapter.
Да, конечно!
В пользовательском ListAdapter вы можете установить onClickListener, как показано ниже:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if( row == null ){
LayoutInflater vi = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = vi.inflate(this.textViewResourceId, null);
}
row.findViewById(R.id.image_item).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
}
});
row.findViewById(R.id.text_item).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
}
});
}
есть много примеров для того же
как это
точка должна
Вам нужно установить прослушиватель для каждого представления в getView (не создавать в каждом случае в режиме просмотра просто пройти уже созданную или передать это и реализовать слушателя в том же классе адаптера)
сделать вид (например, TextView) clickable true
Вам также потребуется позиция строки, поэтому вы можете использовать другую логику, например, get & Set tag или parse view, как в этой ссылке
Да, конечно, вы можете это достичь. Вы можете установить onClickListener на них отдельно внутри класса адаптера, а затем установить эти кнопки или текстовые поля как неконцентрируемые, если вы хотите выполнить другое действие при нажатии на весь элемент списка, используя onItemClickListener.
yourButton.setFocusable(false);
yourButton.setFocusableInTouchMode(false);