当前位置: 首页 > news >正文

番禺微网站建设seo搜索引擎实训心得体会

番禺微网站建设,seo搜索引擎实训心得体会,建设企业网站的需求,网站防站问题简介 在学习开发android过程中,遇到了一个似乎很普遍的问题。当我们在初始化通过adapter将Listview和对应的Arraylist 数据data绑定时,在后面的data更新后,理论上使用adapter.notifyDataSetChanged()方法就可以让adapter自动更新Arrayli…

问题简介

在学习开发android过程中,遇到了一个似乎很普遍的问题。当我们在初始化通过adapter将Listview和对应的Arraylist 数据data绑定时,在后面的data更新后,理论上使用adapter.notifyDataSetChanged()方法就可以让adapter自动更新Arraylist列表,但是实际上我们在对data更新之后,并不能完成对视图中ListView的更新,问bing问了一通也没问出啥解决方法,最后还是查了半天才明白咋回事。。。

结论

解决方法① 可能是最有效的解决方法
将更新后的数据data和视图ListView与适配器adapter重新绑定
即调用绑定时的方法:

data=new_data;//有数据更新
adapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,data);
listView.setAdapter(adapter);

解决方法②
对于Arraylist类型的数据data,只在原对象上修改,不能重新赋值,因为重新赋值实质上改变了data所指向的对象,导致adapter的绑定出现问题,这可能也是notifyDataSetChanged()一个使用条件。

data.add("123");//数据更新
//不能data=new_data;
adapter.notifyDataSetChanged();

下面可以不用看啦

代码分析

package com.example.test.ui.slideshow;import static java.lang.System.out;import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;import com.example.test.R;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Arrays;public class SlideshowFragment extends Fragment implements View.OnClickListener {//private Integer[] data={1,2,3,5,65,6,7,4,4,6,44,33,9,6,6,49491,85,5,6,2,25,51,25,20,2};private String[] ori_data={"test_keyword1","test_keyword2","test_keyword3","test_keyword4","test_keyword1","test_keyword2","test_keyword3","test_keyword4","test_keyword1","test_keyword2","test_keyword3","test_keyword4","test_keyword1","test_keyword2","test_keyword3","test_keyword4"};private ArrayList<String> data = new ArrayList<>(Arrays.asList(ori_data));private ArrayAdapter<String> adapter=null;private ListView listView;public View onCreateView(@NonNull LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {super.onCreate(savedInstanceState);View view =inflater.inflate(R.layout.fragment_email,container,false);listView=(ListView) view.findViewById(R.id.list_email);adapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,data);listView.setAdapter(adapter);//单击每个item进行编辑listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {edit_item(position,adapter);}});listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {@Overridepublic boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {del_item(position,adapter);return true; // 返回true表示已经处理了长按事件,不会触发单击事件}});view.findViewById(R.id.btn_add).setOnClickListener(this);view.findViewById(R.id.btn_sync).setOnClickListener(this);view.findViewById(R.id.btn_save).setOnClickListener(this);view.findViewById(R.id.btn_submit).setOnClickListener(this);return view;}@Overridepublic void onClick(View v) {if(v.getId()==R.id.btn_add){edit_item(data.size(), adapter);}else if(v.getId()==R.id.btn_sync){//从服务器将数据同步到客户端data=load();adapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,data);listView.setAdapter(adapter);Toast.makeText(getActivity(),"已成功加载",Toast.LENGTH_SHORT).show();}else if(v.getId()==R.id.btn_save){save();Toast.makeText(getActivity(),"已成功保存",Toast.LENGTH_SHORT).show();}else if(v.getId()==R.id.btn_submit){}}private void save(){FileOutputStream out=null;BufferedWriter writer=null;try{out =getActivity().openFileOutput("test_datasave.txt", Context.MODE_PRIVATE);writer=new BufferedWriter(new OutputStreamWriter(out));for (String str : data) {writer.write(str);writer.write('\n');}} catch (IOException e) {e.printStackTrace();}finally {try{if(writer!=null){writer.close();}} catch (IOException e) {e.printStackTrace();}}}private ArrayList<String> load(){ArrayList<String> data=new ArrayList<>();FileInputStream in =null;BufferedReader reader=null;try{in=getActivity().openFileInput("test_datasave.txt");reader=new BufferedReader(new InputStreamReader(in));String line="";while((line=reader.readLine())!=null){data.add(line.toString());}} catch (FileNotFoundException e) {e.printStackTrace();Toast.makeText(getActivity(),"未找到文件",Toast.LENGTH_SHORT).show();} catch (IOException e) {e.printStackTrace();}finally {if(reader!=null){try{reader.close();}catch(IOException e){e.printStackTrace();}}}return data;}//用于弹出dialog 并修改其中的某一项private void edit_item(int postition,ArrayAdapter<String> adapter){AlertDialog.Builder dialog=new AlertDialog.Builder(getActivity());dialog.setTitle("编辑");EditText editText=new EditText(getActivity());editText.setHint("请键入新的关键词");dialog.setView(editText);dialog.setPositiveButton("确认", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {final String inputText=editText.getText().toString();if(data.size()==postition){data.add(inputText);}else data.set(postition,inputText);adapter.notifyDataSetChanged();}});dialog.show();}//用于弹出一个dialog,用于确认删除其中的某一项private void del_item(int postition,ArrayAdapter<String> adapter){AlertDialog.Builder dialog=new AlertDialog.Builder(getActivity());dialog.setTitle("删除");dialog.setMessage("确认删除这一项?");dialog.setPositiveButton("确认", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {data.remove(postition);adapter.notifyDataSetChanged();}});dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});dialog.show();}
}
http://www.mmbaike.com/news/62552.html

相关文章:

  • 用java做网站怎么加视频成都seo学徒
  • wordpress增加小工具北京seo薪资
  • 网站建设营销词廊坊seo快速排名
  • 贵阳网站建设zu97网站统计分析工具
  • 网站建设的费用短视频seo排名加盟
  • 专业手机网站建设推荐aso排名优化知识
  • 亚马逊虚拟主机做网站山东百度推广总代理
  • 导购网站模板免费下载自己怎么免费做百度推广
  • wap网站做视频直播百度快照优化推广
  • 衡阳公司做网站百度指数免费添加
  • app和网站开发哪个难梧州网站seo
  • 网站建设网站排名怎么做黄冈网站推广优化找哪家
  • 网站建设销售专业话术今日军事新闻头条打仗
  • web页面显示wordpress新网站排名优化怎么做
  • 如何做网站大图片seo优化网站的手段
  • 中小网站公司做的推广怎么样如何做品牌营销
  • dw做网站乱码seo快速排名系统
  • 常州做网站多少钱seo技术好的培训机构
  • 什么网站可以兼职做设计成都seo整站
  • 网站图标怎么上传百度推广官网首页
  • 凡科登录网站手机版长沙官网优化公司
  • 网站设计风格成人电脑速成培训班
  • 龙华网站建设的软件网络营销的主要特点有哪些
  • 网站 租用服务器seo网站建设
  • 什么网站做简历免费什么是搜索引擎优化
  • 阿里巴巴国际站入口公关团队
  • wordpress最底部seo优化关键词
  • 服装网站建设目标seo外包公司怎么样
  • 营销型网站开发定制360优化大师官方版
  • html中音乐网站怎么做百度官网登录入口