2016-12-14 4 views
1

Я разработал пользовательский адаптер для listview, но его onclicklistner не работает, хотя я не получаю ошибок в журнале. Ниже приведен кодcustom listview onitemclick listner не работает

public class HospiRow extends AppCompatActivity { 

private List<ContactData> hospiData = new ArrayList<ContactData>(); 
Intent intent; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.my_layout); 

    hospiData.add(new ContactData("Shrotri Hospital", "Datta chowk, Yavatmal", "Phone Number 07232 232383", R.drawable.call_button3)); 
    hospiData.add(new ContactData("Tarak Hospital","Shani chowk, Yavatmal","Phone Number 07232 232383", R.drawable.call_button3)); 
    hospiData.add(new ContactData("Dattani Hospital","Shivagi nagar, Yavatmal","Phone Number 07232 232383", R.drawable.call_button3)); 
    hospiData.add(new ContactData("Chattani Hospital","Darda nagar, Yavatmal","Phone Number 07232 232383", R.drawable.call_button3)); 
    hospiData.add(new ContactData("Thakare Hospital","Anne Vidyalaya, Yavatmal","Phone Number 07232 232383", R.drawable.call_button3)); 
    hospiData.add(new ContactData("Bade Hospital","Laxminagar, Yavatmal","Phone Number 07232 232383", R.drawable.call_button3)); 
    hospiData.add(new ContactData("Rathode Hospital","Balaji Society, Yavatmal","Phone Number 07232 232383", R.drawable.call_button3)); 

    ArrayAdapter<ContactData> hospiAdapter = new DataAdapter(this, R.layout.hospi_row, hospiData); 
    ListView myList = (ListView) findViewById(R.id.myFirstListView); 
    myList.setAdapter(hospiAdapter); 

    myList.setOnItemClickListener(
      new AdapterView.OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
        ContactData singleItem = (ContactData) parent.getItemAtPosition(position); 
        String number = singleItem.getTelephoneNumber(); 
        Toast.makeText(HospiRow.this,number, Toast.LENGTH_LONG).show(); 
        intent = new Intent(Intent.ACTION_DIAL); 
        intent.setData(Uri.parse("tel:" + number)); 
        startActivity(intent); 
       } 
      } 
    ); 

} 

}

Пожалуйста, помогите

XML код для ListView является

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

    <ListView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/myFirstListView" 
     android:focusable="false" 
     android:focusableInTouchMode="false"/> 
</LinearLayout> 

именем файла XML является my_layout.xml

+0

сообщение адаптер XML-файл – siva35

+0

и адаптер код, а –

+0

Не могли бы вы опубликовать XML вашей деятельности в?! –

ответ

0

кнопки или любые представления, убедитесь, что они не доступны для этого элемента.

android:focusable="false" 
android:focusableInTouchMode="false" 

, если он не работает с SimpleAdapter, попробовать работать с CustomListViewAdapter и там для каждого вида, сделать интерактивными ложна в XML.

+0

Пробовал, но он все еще не работает –

+0

опубликовать файл hospi_row.xml – Nithin

0

setClickable как false для размещения таких элементов в файле xml вашего адаптера.

<TextView 
..... 
android:clickable="false" 
.... 
/> 

Если какой-либо элемент строки списка содержит фокусируемое или интерактивное представление, то OnItemClickListener не будет работать.

Reffer Here

1

Если любая строка элемент списка содержит фокусируемые или интерактивные вид тогда OnItemClickListener не будет работать. Элемент строки должен иметь параметры, как

android:descendantFocusability="blocksDescendants" 

Вашего XML для элемента списка должны выглядеть следующим образом.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:baselineAligned="false" 
android:descendantFocusability="blocksDescendants" 
android:gravity="center_vertical" > 

// your other widgets here 

</LinearLayout> 
Смежные вопросы