安卓实现仿微信点赞好友昵称列表,中间用逗号隔开
仿微信点赞列表实现
第一步:定义ListView和Adapter为了实现仿微信那样的点赞列表,我们首先需要定义一个`ListView`来展示好友昵称列表。同时,我们还需要定义一个`Adapter`来绑定数据源并且处理点击事件。
```java// 定义ListViewprivate ListView mListView;
// 定义Adapterprivate MyAdapter mAdapter;
```
第二步:实现MyAdapter类在`MyAdapter`类中,我们需要重写`getView()`方法来绑定数据源和设置点击事件。同时,我们还需要定义一个`ViewHolder`类来缓存View对象。
```java// 定义ViewHolder类private static class ViewHolder {
public TextView mTextView;
}
// 实现MyAdapter类public class MyAdapter extends BaseAdapter {
private List
public MyAdapter(List
mDataList = dataList;
}
@Override public int getCount() {
return mDataList.size();
}
@Override public Object getItem(int position) {
return mDataList.get(position);
}
@Override public long getItemId(int position) {
return position;
}
@Override public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.item_list, null);
holder = new ViewHolder();
holder.mTextView = (TextView) convertView.findViewById(R.id.text_view);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
String data = mDataList.get(position);
holder.mTextView.setText(data);
// 设置点击事件 convertView.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
// 点击事件处理逻辑 Toast.makeText(context, "点击了" + data, Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
}
```
第三步:设置ListView和Adapter在`onCreate()`方法中,我们需要设置`ListView`和`Adapter`。
```java// 设置ListView和AdaptermListView = (ListView) findViewById(R.id.list_view);
List
dataList.add("好友1");
dataList.add("好友2");
dataList.add("好友3");
mAdapter = new MyAdapter(dataList);
mListView.setAdapter(mAdapter);
```
第四步:实现点击事件在`MyAdapter`类中,我们已经设置了点击事件。点击列表项时,会弹出Toast提示。
```java// 点击事件处理逻辑convertView.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
// 点击事件处理逻辑 Toast.makeText(context, "点击了" + data, Toast.LENGTH_SHORT).show();
}
});
```
第五步:实现中间用逗号隔开为了实现中间用逗号隔开,我们需要在`MyAdapter`类中重写`getView()`方法,添加逗号。
```java// 重写getView()方法@Overridepublic View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.item_list, null);
holder = new ViewHolder();
holder.mTextView = (TextView) convertView.findViewById(R.id.text_view);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
String data = mDataList.get(position);
holder.mTextView.setText(data);
// 添加逗号 if (position >0 && position < mDataList.size() -1) {
holder.mTextView.append(", ");
}
// 设置点击事件 convertView.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
// 点击事件处理逻辑 Toast.makeText(context, "点击了" + data, Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
```
第六步:实现跳转到好友详情页为了实现跳转到好友详情页,我们需要在`MyAdapter`类中重写`getView()`方法,添加跳转逻辑。
```java// 重写getView()方法@Overridepublic View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.item_list, null);
holder = new ViewHolder();
holder.mTextView = (TextView) convertView.findViewById(R.id.text_view);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
String data = mDataList.get(position);
holder.mTextView.setText(data);
// 添加逗号 if (position >0 && position < mDataList.size() -1) {
holder.mTextView.append(", ");
}
// 设置点击事件 convertView.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
// 点击事件处理逻辑 Intent intent = new Intent(context, FriendDetailActivity.class);
intent.putExtra("friend_name", data);
context.startActivity(intent);
}
});
return convertView;
}
```
以上就是实现仿微信点赞列表的详细步骤。