80,337
社区成员
发帖
与我相关
我的任务
分享
public class MainActivity extends Activity{
private List<ItemBean> itemBeanList;
private ListView listview;
private MyAdapter myAdapter;
private Handler handler;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview = (ListView) findViewById(R.id.listview);
button=(Button)findViewById(R.id.bt);
itemBeanList = new ArrayList<ItemBean>();
for(int i=0;i<10;i++){
itemBeanList.add(new ItemBean(
R.drawable.ic_launcher,
"标题" + i,
"内容:这是新闻页面" + i
));
}
myAdapter = new MyAdapter(this, itemBeanList);
listview.setAdapter(myAdapter);
myAdapter = new MyAdapter(MainActivity.this, itemBeanList);
myAdapter.notifyDataSetChanged();
listview.setAdapter(myAdapter);
listview.invalidate();
button.setOnClickListener(new OnClickListener()
{ @Override
public void onClick(View v)
{
itemBeanList.clear();
for(int i=0;i<10;i++){
itemBeanList.add(new ItemBean(
R.drawable.ic_launcher,
"更新的标题" + i,
"内容:这是新闻页面" + i
));
}
myAdapter.notifyDataSetChanged();
}
});
}
}
new Thread(){
public void run() {
handler.sendEmptyMessage(1);
};
};
改成
myAdapter.notifyDataSetChanged();
删除handler相关代码即可
我不想多说,你thread写的太6了,会自动跑public class MyAdapter extends BaseAdapter{
private LayoutInflater mInflater;
private List<ItemBean> mData;
ItemBean itemBean;
public MyAdapter(Context context,List<ItemBean> mData){
//根据context上下文加载布局
this.mInflater = LayoutInflater.from(context);
//将传入的数据保存在mData中
this.mData=mData;
}
@Override
public int getCount() {
//How many items are in the data set represented by this Adapter.
//在此适配器中所代表的数据集中的条目数
return mData.size();
}
@Override
public Object getItem(int position) {
// Get the data item associated with the specified position in the data set.
//获取数据集中与指定索引对应的数据项
return position;
}
@Override
public long getItemId(int position) {
//Get the row id associated with the specified position in the list.
//获取在列表中与指定索引对应的行id
return position;
}
@Override
//Get a View that displays the data at the specified position in the data set.
//获取一个在数据集中指定索引的视图来显示数据
public View getView(int position, View convertView, ViewGroup parent) {
//itemBean=getItem(position);
ViewHolder holder = null;
//如果缓存convertView为空,则需要创建View
if (convertView == null) {
//自定义的一个类用来缓存convertview
holder=new ViewHolder();
//根据自定义的Item布局加载布局
convertView = mInflater.inflate(R.layout.vlist, null);
holder.img = (ImageView)convertView.findViewById(R.id.img);
holder.titl = (TextView)convertView.findViewById(R.id.title);
holder.info = (TextView)convertView.findViewById(R.id.info);
//将设置好的布局保存到缓存中,并将其设置在Tag里,以便后面方便取出Tag
convertView.setTag(holder);
}else {
holder = (ViewHolder)convertView.getTag();
}
holder.img.setBackgroundResource((Integer)mData.get(position).getImageId());
holder.titl.setText((String)mData.get(position).getTitle());
holder.info.setText((String)mData.get(position).getContent());
return convertView;
}
class ViewHolder{
public ImageView img;
public TextView titl;
public TextView info;
}
}
public class MainActivity extends Activity{
private List<ItemBean> itemBeanList;
private ListView listview;
private MyAdapter myAdapter;
private Handler handler;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try{
setContentView(R.layout.activity_main);
listview = (ListView) findViewById(R.id.listview);
button=(Button)findViewById(R.id.bt);
itemBeanList = new ArrayList<ItemBean>();
for(int i=0;i<10;i++){
itemBeanList.add(new ItemBean(
R.drawable.ic_launcher,
"标题" + i,
"内容:这是新闻页面" + i
));
}
myAdapter = new MyAdapter(this, itemBeanList);
listview.setAdapter(myAdapter);
handler = new Handler(){
public void handleMessage(android.os.Message msg) {
myAdapter = new MyAdapter(MainActivity.this, itemBeanList);
myAdapter.notifyDataSetChanged();
listview.setAdapter(myAdapter);
listview.invalidate();
};
};
}
catch (Exception e)
{
Toast.makeText(getApplication(),e.toString() ,Toast.LENGTH_LONG).show();
}
button.setOnClickListener(new OnClickListener()
{ @Override
public void onClick(View v)
{
//ChangeList(this);
itemBeanList.clear();
for(int i=0;i<10;i++){
itemBeanList.add(new ItemBean(
R.drawable.ic_launcher,
"更新的标题" + i,
"内容:这是新闻页面" + i
));
}
new Thread(){
public void run() {
handler.sendEmptyMessage(1);
};
};
}
} );
}
public void ChangeList(View v){
itemBeanList.clear();
for(int i=0;i<10;i++){
itemBeanList.add(new ItemBean(
R.drawable.ic_launcher,
"更新的标题" + i,
"内容:这是新闻页面" + i
));
}
new Thread(){
public void run() {
handler.sendEmptyMessage(1);
};
};
}
}
handler = new Handler(){
public void handleMessage(android.os.Message msg) {
myAdapter.notifyDataSetChanged();
};
};