Android之如何解决Listview里面的值出现了2次
16lz
2021-01-26
Listview里面的值出现了2次
不废话,先爆照
我去,这个listview里面的值怎么出现了2次,一直在找原因,后来解决了,先看下我的部分代码吧。
这是mainactivity.xml内容
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:sat="http://schemas.android.com/apk/res-auto" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <fragment android:id="@+id/content" android:layout_width="match_parent" android:layout_height="match_parent" android:name="com.example.chenyu.shaketofresh.ListViewFragment" > </fragment> <!--<RelativeLayout--> <!--android:id="@+id/content"--> <!--android:layout_width="match_parent"--> <!--android:layout_height="match_parent"></RelativeLayout>--></RelativeLayout>
然后这是ListViewFragment.java文件
package com.example.chenyu.shaketofresh;import android.app.Fragment;import android.os.Bundle;import android.support.annotation.Nullable;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ListView;import android.widget.SimpleAdapter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * Created by Think on 2015/11/7. */public class ListViewFragment extends Fragment{ List<Map<String,Object>> mData=new ArrayList<Map<String,Object>>(); private String[] mListTitle={"功能: ","姓名: ","我的QQ:","QQ学习群:","邮箱: "}; private String[] mListStr={"手机摇一摇震动刷新","陈喻","2657607916","319010802","2657607916@qq.com"}; private ListView mlistView=null; private ListView lv; private SimpleAdapter adapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Log.d("chen","onCreateView"); View view=inflater.inflate(R.layout.listview_fragment,container,false); mData=getmData(); lv= (ListView)view.findViewById(R.id.listview_fragment); adapter=new SimpleAdapter(getActivity(),mData,R.layout.simple_list_item,new String[]{"title","text"},new int[]{R.id.text1,R.id.text2}); lv.setAdapter(adapter); return view; } public List<Map<String,Object>> getmData(){ for(int i=0;i<mListTitle.length;i++){ Map<String,Object> map=new HashMap<String,Object>(); map.put("title",mListTitle[i]); map.put("text",mListStr[i]); mData.add(map); } return mData; }}
然后就是部分mainActivity.java文件
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d("chen", "onCreate"); setContentView(R.layout.activity_main); FragmentManager fm=getFragmentManager(); FragmentTransaction ft=fm.beginTransaction(); ListViewFragment listViewFragment=new ListViewFragment(); ft.replace(R.id.content,listViewFragment); ft.commit();// mData=getmData();// lv= (ListView) findViewById(R.id.lv);// adapter=new SimpleAdapter(this,mData,R.layout.simple_list_item,new String[]{"title","text"},new int[]{R.id.text1,R.id.text2});// lv.setAdapter(adapter); //获取传感器管理服务 mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); //震动 vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE); initSlidingMenu(); }
为什么listview里面的值会加载2次呢?
是因为
android:name="com.example.chenyu.shaketofresh.ListViewFragment"
就默认加载了
然后我在mainActivity.java文件里面写了
ft.replace(R.id.content,listViewFragment);又取代了一次,所以加载2次了,以后记得不要犯错。
总结:
如果写静态的Fragment实现之后,就不要动态加载了,这样就重复了,以后要注意。
更多相关文章
- Android(安卓)打包签名 从生成keystore到完成签名
- linux下android模块开发部署
- 【Android】网络下载图片&SD卡文件存储
- 使用Android系统隐藏api读取*.apk程序安装包信息
- Android(安卓)RecyclerView刷新和加载
- 使用ndk中的gcc编译Android可执行文件
- 玩转Android---UI篇---EditText(编辑框)
- 【Android】App自动更新之通知栏下载
- Android(安卓)Studio 集成NDK 报错Error:No toolchains found in