android - 请教,安卓listview点击事件
高洛峰
高洛峰 2017-04-17 15:36:13
[Android讨论组]

这个程序是有点小题大做。问题是这样的,我程序中没有给listView加上Onclicklistener监听啊,为什么运行后,我随意点击任何一个ListView的items时候都弹出footer呢?

看程序吧:

主程序:

package com.example.NotifyDataSetChangeDemo;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class MyActivity extends Activity implements View.OnClickListener{

        private List
list; private ListView listView; private MyAdapter adapter; private Button loadBtn, loadMoreBtn,loadingBtn; private Handler handler; private LayoutInflater mInflater; private View footer; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initView(); loadBtn.setOnClickListener(this); loadMoreBtn.setOnClickListener(this); } private void initView() { loadBtn = (Button) findViewById(R.id.load); loadMoreBtn = (Button) findViewById(R.id.loadMore); loadingBtn = (Button) findViewById(R.id.loading); list = new ArrayList
(); listView = (ListView) findViewById(R.id.listView); adapter = new MyAdapter(list, MyActivity.this); handler = new Handler(); mInflater = LayoutInflater.from(MyActivity.this); footer = mInflater.inflate(R.layout.footer, null); footer.setVisibility(View.GONE); listView.addFooterView(footer); } private void CreateDatas() { if (list.size()==0){ for (int i = 0; i < 10; i++) { Article article = new Article(); article.setTitle("I am a dog" + i); article.setContent("Yes,you are a big dog," + i); list.add(article); } }else { Toast.makeText(MyActivity.this,"You had loaded the original datas,please stop!",Toast.LENGTH_SHORT).show(); } } private void CreateMoreDatas() { int nowSize = list.size(); for (int i = nowSize; i < nowSize+5; i++) { Article article = new Article(); article.setTitle("I am new" + i); article.setContent("you are old man,guy," + i); list.add(article); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.load: CreateDatas(); listView.setAdapter(adapter); break; case R.id.loadMore: footer.setVisibility(View.VISIBLE); handler.postDelayed(new Runnable() { @Override public void run() { CreateMoreDatas(); adapter.notifyDataSetChanged(); listView.setAdapter(adapter); footer.setVisibility(View.GONE); } }, 3000); } } }

适配器:

package com.example.NotifyDataSetChangeDemo;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import java.util.List;


public class MyAdapter extends BaseAdapter {

        private List
list; private Context context; private LayoutInflater mInflater; public MyAdapter(List
list, Context context) { this.list = list; this.context = context; mInflater = LayoutInflater.from(context); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView==null){ convertView = mInflater.inflate(R.layout.items, null); holder = new ViewHolder(convertView); holder.title = (TextView) convertView.findViewById(R.id.title); holder.content = (TextView) convertView.findViewById(R.id.content); convertView.setTag(holder); }else{ holder = (ViewHolder) convertView.getTag(); } holder.title.setText(list.get(position).getTitle()); holder.content.setText(list.get(position).getContent()); return convertView; } } class ViewHolder{ View view; TextView title; TextView content; public ViewHolder(View view) { this.view = view; } }

main.xml



    
        

footer.xml




    

items.xml



    

    

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
天蓬老师

系统问题,原来用CM的系统,换个原装就没问题。搞乌龙了

迷茫

我想这都不用细看就知道你所贴的代码不会出现你说的情况,改了代码就把出问题的代码老老实实贴上来再讨论吧,实事求是。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号