Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 硅谷社交12--群列表頁面,硅谷社交12--列表

硅谷社交12--群列表頁面,硅谷社交12--列表

編輯:關於android開發

硅谷社交12--群列表頁面,硅谷社交12--列表


1)頁面布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <com.hyphenate.easeui.widget.EaseTitleBar
        app:titleBarTitle="群組列表"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </com.hyphenate.easeui.widget.EaseTitleBar>

    <ListView
        android:id="@+id/lv_grouplist"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </ListView>
</LinearLayout>

2)Listview添加頭布局

// 獲取頭布局view
View headerView = View.inflate(GroupListActivity.this, R.layout.header_group_list, null);
// 添加頭布局view
lv_group_list.addHeaderView(headerView);

3)Listview初始化

// 創建適配器
mGroupListAdapter = new GroupListAdapter(GroupListActivity.this);
// 將適配器添加到listview中
lv_group_list.setAdapter(mGroupListAdapter);

4)Listview適配器

public class GroupListAdapter extends BaseAdapter {
    private Context mContext;
    private List<EMGroup> mEMGroups = new ArrayList<>();

    public GroupListAdapter(Context context) {
        mContext = context;
    }

    // 刷新方法
    public void refresh(List<EMGroup> eMGroups){
        if(eMGroups != null && eMGroups.size() >= 0) {
            // 加載數據
            mEMGroups.clear();
            mEMGroups.addAll(eMGroups);
            // 通知刷新頁面
            notifyDataSetChanged();
        }
    }

    @Override
    public int getCount() {
        return mEMGroups == null? 0:mEMGroups.size();
    }

    @Override
    public Object getItem(int position) {
        return mEMGroups.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // 創建或獲取viewhoder
        ViewHolder holder = null; 
        if(convertView == null) {
            holder = new ViewHolder();
            convertView = View.inflate(mContext, R.layout.item_group_list, null);
            holder.tv_name = (TextView) convertView.findViewById(R.id.tv_group_list_name);
            convertView.setTag(holder);
        }else {
            holder = (ViewHolder) convertView.getTag();
        }
        // 獲取當前item數據
        EMGroup emGroup = mEMGroups.get(position);
        // 顯示數據
        holder.tv_name.setText(emGroup.getGroupName());
        // 返回convertview
        return convertView;
    }

    static class  ViewHolder{
        TextView tv_name;
    }
}

5)從環信服務器獲取群組聯系人信息

// 聯網獲取群信息
private void getGroupFromHxServier() {
	Model.getInstace().getGolbalThreadPool().execute(new Runnable() {
		@Override
		public void run() {
			try {
				// 聯網獲取群信息
				EMClient.getInstance().groupManager().getJoinedGroupsFromServer();

				runOnUiThread(new Runnable() {
					@Override
					public void run() {
						Toast.makeText(GroupListActivity.this, "加載群信息成功", Toast.LENGTH_SHORT).show();
						// 刷新顯示
						mGroupListAdapter.refresh(EMClient.getInstance().groupManager().getAllGroups());
					}
				});
			} catch (HyphenateException e) {
				e.printStackTrace();
				runOnUiThread(new Runnable() {
					@Override
					public void run() {
						Toast.makeText(GroupListActivity.this, "加載群信息失敗", Toast.LENGTH_SHORT).show();
					}
				});

			}
		}
	});
}

6)Listview刷新頁面

// 刷新顯示
mGroupListAdapter.refresh(EMClient.getInstance().groupManager().getAllGroups());

7)群列表條目的點擊事件

// 群列表的點擊事件
lv_group_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
	@Override
	public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

		// 跳轉到聊天頁面
		Intent intent = new Intent(GroupListActivity.this, ChatActivity.class);

		// 獲取群id
		String groupId = EMClient.getInstance().groupManager().getAllGroups().get(position - 1).getGroupId();
		intent.putExtra(EaseConstant.EXTRA_USER_ID, groupId);

		// 保存群聊天類型
		intent.putExtra(EaseConstant.EXTRA_CHAT_TYPE, EaseConstant.CHATTYPE_GROUP);

		startActivity(intent);
	}
});

8)創建新群的點擊監聽

// 群組條目的點擊事件
ll_group_list.setOnClickListener(new View.OnClickListener() {
	@Override
	public void onClick(View v) {
		// 跳轉到新建群頁面
		Intent intent = new Intent(GroupListActivity.this, NewGroupActivity.class);

		startActivity(intent);
	}
});

9)頁面可見時刷新頁面

@Override
protected void onResume() {
	super.onResume();
	// 刷新頁面
	mGroupListAdapter.refresh(EMClient.getInstance().groupManager().getAllGroups());
}

  

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved