Custom ListView in a dialog
22,609
Solution 1
You need to use AlertDialog.Builder
-
Refer this- Docs
Edit -
new AlertDialog.Builder(MyActivity.this)
.setAdapter(yourListAdapter, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//TODO - Code when list item is clicked (int which - is param that gives you the index of clicked item)
}
})
.setPositiveButton("Okay", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setTitle("Dialog Title")
.setCancelable(false)
.show();
Solution 2
@Vishal is right, you needs to use AlertDialog if you needs to inflate view inside your dialog. Here's the example code. Tried the code below.
public void showDialog(){
AlertDialog.Builder dialog = new AlertDialog.Builder(getContext());
dialog.setTitle("List of likers");
dialog.setCancelable(true);
View view = ((Activity)getContext()).getLayoutInflater().inflate(R.layout.likers_list, null);
dbobj = new DataBaseHandler(getContext());
likeItems=dbobj.select_HowlikeComment();
dbobj.CloseDataBase();
ListView list = (ListView) view.findViewById(R.id.ListLikersList);
LikersCustomeAdapter adapter= new LikersCustomeAdapter(getContext(), R.layout.likerscustomelist, likeItems);
list.setAdapter(adapter);
dialog.setView(view);
dialog.show();
}
Author by
Jehad
Updated on July 05, 2022Comments
-
Jehad almost 2 years
i have a list view , inside this list when click on an item of it ,it will show a custom list inside a dialog box
the dialog shows up but its only shows the title of the dialog
here is my code
case R.id.CommentNumOfLike: dbobj = new DataBaseHandler(getContext()); Items1 = dbobj.select_HowComment(); dbobj.CloseDataBase(); Collections.reverse(Items1); x = (Integer) view.getTag(); Log.v("value", x + ""); target = Items1.get(x).getCommentId().toString(); CommentEvents r = new CommentEvents(); r.execute(user_id, secret_id, table, target); final Dialog dialog = new Dialog(getContext()); dialog.setContentView(R.layout.likers_list); dialog.setTitle("List of likers"); dialog.setCanceledOnTouchOutside(true); dbobj = new DataBaseHandler(getContext()); likeItems=dbobj.select_HowlikeComment(); dbobj.CloseDataBase(); ListView list = (ListView) dialog.findViewById(R.id.ListLikersList); LikersCustomeAdapter adapter= new LikersCustomeAdapter(getContext(), R.layout.likerscustomelist, likeItems); list.setAdapter(adapter); dialog.show(); break;
this is my adapter
public class LikersCustomeAdapter extends ArrayAdapter<LikersComment>{ Context context; List<LikersComment> items; Bitmap bitmap; String imageUser = ""; String filePath_Image = "/Pictures/jehad/joj/"; public LikersCustomeAdapter(Context context, int textViewResourceId, List<LikersComment> objects) { super(context, textViewResourceId, objects); // TODO Auto-generated constructor stub this.context=context; } public View getView(final int position, View convertView, ViewGroup parent) { Log.d("View likers List", "View>>>>>>>>"); likerscommentholder h = null; View v = convertView; Log.v("items getName", items.get(position).getName()); LayoutInflater vi = (LayoutInflater) context .getSystemService(Activity.LAYOUT_INFLATER_SERVICE); if (v == null) { v = vi.inflate(R.layout.likerscustomelist,null); h = new likerscommentholder(); h.likersimg=(ImageView)v.findViewById(R.id.likersImg); h.likersname=(TextView)v.findViewById(R.id.likersName); v.setTag(h); } else { h = (likerscommentholder) v.getTag(); } imageUser = items.get(position).getId() + items.get(position).getRand(); boolean flag_ImagePath = Methods.checkIfImage_DirExists(filePath_Image + imageUser); if (flag_ImagePath == true) { Log.v("flag_ImagePath", String.valueOf(flag_ImagePath)); bitmap = Methods.displayBitmapImage(imageUser); h.likersimg.setImageBitmap(bitmap); } h.likersname.setText(items.get(position).getName()); return v; } } class likerscommentholder { ImageView likersimg; TextView likersname; }
this is the list view
likers_list.xml
<?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="vertical" > <ListView android:id="@+id/ListLikersList" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView>
this is the custom layout
likerscustomelist.xml
<?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="vertical" > <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/likersImg" android:layout_width="65dp" android:layout_height="65dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/likersName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginLeft="16dp" android:layout_marginTop="19dp" android:layout_toRightOf="@+id/likersImg" android:text="Medium Text" android:textAppearance="?android:attr/textAppearanceMedium" /> </RelativeLayout> </LinearLayout>
-
Jehad over 10 yearscan you give me an example of it