第一步:编写Dialog的显示布局
<?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:id="@+id/lv_user_list" android:layout_width="wrap_content" android:layout_height="100dp" android:dividerHeight="3px" android:cacheColorHint="@color/black" /> </LinearLayout>第二部:设置Dialog的样式文件
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="user_listView_dialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item><!--Dialog的windowFrame框为无 --> <item name="android:windowIsFloating">true</item><!--是否浮现在activity上--> <item name="android:windowIsTranslucent">false</item><!--是否半透明--> <item name="android:windowNoTitle">true</item> <item name="android:backgroundDimEnabled">false</item><!--背景是否模糊--> <item name="android:windowBackground">@drawable/user_list_bg</item><!--设置背景图片--> </style> </resources>第三部:创建Dialog
View digView = View.inflate(LoginActivity.this, R.layout.userlist_dialog, null); dialog = new Dialog(LoginActivity.this, R.style.user_listView_dialog); dialog.setContentView(digView); dialog.show();
第四部:创建listview的实力
listView = (ListView) digView.findViewById(R.id.lv_user_list);//****这里必须叫上digView,因为第五步:编写SimpleAdapter文件
package Adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import java.util.List; import Bean.UserInfo; import app.coolweather.com.weibo.R; /** * Created by Administrator on 2016/8/17. */ public class UserAdapter extends BaseAdapter{ private Context context; private List<UserInfo> userInfos; public UserAdapter(Context context, List<UserInfo> userInfos){ this.context=context; this.userInfos=userInfos; } @Override public int getCount() { return userInfos==null?0:userInfos.size(); //获取List的count长度,如果为空返回0,如果不为空返回长度 } @Override public Object getItem(int position) { return userInfos==null?null:userInfos.get(position); //获取listview的项 } @Override public long getItemId(int position) { return userInfos.get(position).get_id(); //获取listview的项的id,获取自增长id } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; if(view==null){ view = LayoutInflater.from(context).inflate(R.layout.user_selected_templete, null);//加载布局文件,返回v对象 // ImageView img_head= (ImageView) view.findViewById(R.id.img_user_head);//创建实例对象 TextView text_name = (TextView) view.findViewById(R.id.text_user_name); UserInfo userInfo = userInfos.get(position);//获取某个用户,这里才有获取某个单独用户的例子 // img_head.setImageDrawable(userInfo.getUserIcon());//setImageDrawable是img_head自己独有的 text_name.setText(userInfo.getUserId()); //上面还没有获取用户的头像,姓名 } return view; } }最后一步,加载Adapter
UserAdapter userAdapter = new UserAdapter(LoginActivity.this, list);//list是UserInfoService中调用findalluser()方法获取数据库中用户的记过list<userinfo> listView.setAdapter(userAdapter);