• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android 大杂烩工程之ListView的开发2以及数据仓库开发模式

Android 大杂烩工程之ListView的开发2以及数据仓库开发模式

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了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



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 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性能的几个技巧

相关文章

  • 2017-05-26组件RecyclerView的应用(一),组件recyclerview
  • 2017-05-26android post带数据请求方式,传递的数据格式包括json和map,androidjson
  • 2017-05-26Android UI相关开源项目库汇总,android开源项目
  • 2017-05-26解析View的getDrawingCache方法,getdrawingcache
  • 2017-05-26ULog远程日志——让Android调试更加方便直观
  • 2017-05-26Android设置透明状态栏和透明导航栏,android导航栏
  • 2017-05-26Android ViewPager使用详解
  • 2017-05-26Android--Activity在跳转时携带数据
  • 2017-11-18android 自定义View圆圈箭头_
  • 2017-05-26可展开的列表组件——ExpandableListView深入解析,expandablelist展开

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 自定义控件(一),自定义控件(
    • android toolbar 假标题居中,androidtoolbar
    • 手机影音1--SplashActivity,1--splashactivity
    • 说明一下JNI 与AIDL,说明JNIAIDL
    • AppLaunchChecker
    • android:Activity数据传递之静态变量
    • 2.3.5.RadioButton(单选按钮)&Checkbox(复选框)
    • android 基于Zxing的二维码的二维码扫描之横屏扫描
    • achartengine/MPAndroidChart——图表实现之Java
    • Android安全攻防战,反编译与混淆技术完全解析(下)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有