网友通过本文主要向大家介绍了android listview,android listview优化,android 横向listview,android listview属性,android listview刷新等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
Android 大杂烩工程之ListView的开发2以及数据仓库开发模式
今天是放完假后工作的第一天,为了证明我不是一段幽灵代码,我给各位看客老爷们说句:祝大家节日过得愉快(过得不愉快那也是人之常情)。
我们继续来讲一讲ListView的开发,上次讲到了ListView的适配器和布局模式,今天要讲的就是简单却也适用的点击事件处理了。之前我们的界面一进去就是跟机器人对话,面向的对象始终只有机器人一个,这次我们来仿照QQ的消息界面那样有一个对象列表,点击其中一个就能进入相应的聊天界面。话不多说,先上代码:
新增一个布局文件activity_chatlist.xml
<!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal">
<imageview android:id="@+id/iv_chatList_icon" android:layout_width="40dp" android:layout_height="40dp" android:layout_marginleft="@dimen/activity_vertical_margin">
<textview android:id="@+id/tv_chatList_account" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_marginleft="@dimen/activity_vertical_margin" android:gravity="center" android:textsize="@dimen/mid_text_size">
</textview></imageview></linearlayout>
新增两个java文件ChatActivity.java
package com.teachmodel.fragment;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import com.teachmodel.R;
import com.teachmodel.adapter.ChatAdapter;
import com.teachmodel.bean.Chat;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
/**
* Created by windbreaker on 16/4/5.
*/
public class ChatActivity extends Activity {
private ListView mListView;
private List mList;
private ChatAdapter mChatAdapter;
private Hashtable ansChats;
private EditText et_chat;
private Button btn_chat;
private String chatName;
private int chatIcon;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_first);
init();
}
private void init() {
Intent intent = getIntent();
chatName = intent.getStringExtra("account");
chatIcon = intent.getIntExtra("icon", 0);
et_chat = (EditText) findViewById(R.id.et);
btn_chat = (Button) findViewById(R.id.btn);
mListView = (ListView) findViewById(R.id.lv_chat_list);
mList = new ArrayList<>();
ansChats = new Hashtable<>();
ansChats.put("Hi", "Hello");
ansChats.put("What is your name?", "My name is DuBe.");
ansChats.put("What?DouBi?", "Yeah....");
ansChats.put("Ha...,How interesting", "Thank you.");
mChatAdapter = new ChatAdapter(mList, this);
mListView.setAdapter(mChatAdapter);
btn_chat.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Chat mChat = new Chat();
mChat.setName("白马秋风");
mChat.setIcon(R.mipmap.my);
mChat.setMessage(et_chat.getText().toString());
mChatAdapter.addItem(mChat);
getAns(et_chat.getText().toString());
et_chat.setText("");
}
});
}
private void getAns(String question) {
Chat mChat = new Chat();
mChat.setName(chatName);
mChat.setIcon(chatIcon);
if (ansChats.get(question) != null) {
mChat.setMessage(ansChats.get(question));
} else {
mChat.setMessage("I dont know what you ask?");
}
mChatAdapter.addItem(mChat);
mListView.setSelection(mListView.getBottom());
}
}
ChatListAdapter.java
package com.teachmodel.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 com.teachmodel.R;
import com.teachmodel.bean.Chat;
import java.util.List;
/**
* Created by windbreaker on 16/4/5.
*/
public class ChatListAdapter extends BaseAdapter {
private List chatList;
private LayoutInflater mLayoutInflater;
public ChatListAdapter(List chatList, Context context) {
this.chatList = chatList;
this.mLayoutInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return chatList.size();
}
@Override
public Object getItem(int position) {
return chatList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder mViewHolder;
if (convertView == null) {
convertView = mLayoutInflater.inflate(R.layout.item_chatlist, null);
mViewHolder = new ViewHolder();
mViewHolder.iv = (ImageView) convertView.findViewById(R.id.iv_chatList_icon);
mViewHolder.tv = (TextView) convertView.findViewById(R.id.tv_chatList_account);
convertView.setTag(mViewHolder);
} else {
mViewHolder = (ViewHolder) convertView.getTag();
}
mViewHolder.tv.setText(chatList.get(position).getName());
mViewHolder.iv.setImageResource(chatList.get(position).getIcon());
return convertView;
}
class ViewHolder {
ImageView iv;
TextView tv;
}
}
再改一下FirstFragment.java
package com.teachmodel.fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import com.teachmodel.R;
import com.teachmodel.adapter.ChatListAdapter;
import com.teachmodel.bean.Chat;
import java.util.ArrayList;
import java.util.List;
/**
* Created by windbreaker on 16/3/23.
*/
public class FirstFragment extends Fragment {
private View v;
private ListView lv;
private List mList;
private int[] iconLab = {R.mipmap.ic_launcher, R.mipmap.usericon, R.mipmap.my};
private String[] nameLab = {"机器人", "管理员", "夜的风衣"};
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle
savedInstanceState) {
v = inflater.inflate(R.layout.activity_chatlist, null);
init();
initData();
return v;
}
private void init() {
lv = (ListView) v.findViewById(R.id.lv_chatList);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
Intent intent = new Intent(getActivity(), ChatActivity.class);
intent.putExtra("account", mList.get(position).getName());
intent.putExtra("icon", mList.get(position).getIcon());
startActivi
您可能想查找下面的文章:
- Android UI:ListView,androiduilistview
- Android UI ListView的使用,androidlistview
- Listview详解,listview
- Android—自定义控件实现ListView下拉刷新,androidlistview
- Android一个ListView列表之中插入两种不同的数据,androidlistview
- 保持listview当前位置,listview当前位置
- Android 大杂烩工程之ListView的开发2以及数据仓库开发模式
- Android新手入门2016(8)--ListView之ArrayAdapter
- Android下拉刷新上拉加载更多的扩展ListView
- 提升Android ListView性能的几个技巧

