ListView not responding to click events on Android

I have a custom element ListViewas follows:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" 
    android:gravity="center_vertical" 
    android:paddingTop="2dp"
    android:paddingBottom="2dp"
    android:background="@android:color/transparent">

    <ImageView
        android:id="@+id/profile_picture"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/mr_unknown" 
        android:contentDescription="@string/profile_picture_description"
        android:paddingRight="3dp"/>

    <TextView
        android:id="@+id/real_life_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/FriendListText"/>
    <Button 
        android:id="@+id/ping_friend"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ping Friend"
        />
</LinearLayout>

which is used in this ListView:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@color/white"
    tools:context=".FriendListActivity" >

    <ListView
        android:id="@+id/friend_list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fastScrollEnabled="true"
        android:smoothScrollbar="false"
        style="@style/ListViewStyle" >
    </ListView>

</LinearLayout>

Now I want that when the Ping Friend button is pressed on any item in the list, it should show AlertDialog . I used this code ...

friendListAdapter = new FriendListAdapter(FriendListActivity.this, friends);
friendListView = (ListView) findViewById(R.id.friend_list);
friendListView.setAdapter(friendListAdapter);           

downloadFriends_async(); //This method downloads all the *friends* into ListView from Database. *Its working correctly*.


friendListView.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
        alertDialogBuilder.setTitle("Hello!!!");
        alertDialogBuilder
        .setMessage("Do you want to exit?")
        .setCancelable(false)
        .setPositiveButton("Yes",new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog,int id) {
                FriendListActivity.this.finish();}})
                .setNegativeButton("No",new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,int id) {
                        dialog.cancel();}});
        AlertDialog alertDialog = alertDialogBuilder.create();
        alertDialog.show();
    }
});

An error has occurred.

The problem is that it does not respond to the button "Press the button" and "AlertDialog" is not displayed at all.

For the button, I'm also tired of adding inside onItemClickfrom a ListView :

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

Button btnPingFriend = (Button) findViewById(R.id.ping_friend);
btnPingFriend.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View view) {

//Rest of AlertDialog Code...

}

Still no answer.

Please offer.

+5
source share
3 answers

add

android:descendantFocusability="blocksDescendants"

ViewGroup

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" 
    android:gravity="center_vertical" 
    android:paddingTop="2dp"
    android:paddingBottom="2dp"
    android:background="@android:color/transparent"
    android:descendantFocusability="blocksDescendants"
     >

    <ImageView
        android:id="@+id/profile_picture"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/mr_unknown" 
        android:contentDescription="@string/profile_picture_description"
        android:paddingRight="3dp"/>

    <TextView
        android:id="@+id/real_life_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/FriendListText"/>
    <Button 
        android:id="@+id/ping_friend"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ping Friend"
        />
</LinearLayout>
+18

:

listview.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            // TODO Auto-generated method stub


        AlertDialog.Builder alertbox=new AlertDialog.Builder(FirstActivity.this);


                     alertbox.setTitle("Warning");
                     alertbox.setMessage("Exit Application?");
                     alertbox.setPositiveButton("Yes", new
                     DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface arg0, int arg1) {

                        /////operations
                     }
                     });
                     alertbox.setNegativeButton("No", new
                     DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface arg0, int arg1) {

                     }
                     });
                     alertbox.show();

        }
0

, Button onItemClick, ListView.

EDIT:

getView ListAdapter (FriendsListAdapter) :

Button btnPingFriend = (Button) v.findViewById(R.id.ping_friend);
btnPingFriend.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View view) {
        // Add your dialog here.
}

Button ListView Listener - Button's: http://developer.android.com/reference/android/widget/Button.html, Listeners ...

0

All Articles