android Fragment中嵌入ListView ,更新数据后,getview()没被调用
我是在vieapage里面嵌套listview的。viewpager是用fragment写的。listview是简单Adapter写的

3个回答

我的viewpager是用fragment写的。是由于这个原因才导致我的listview无法得到更新的。好像是受到了fragment生命周期的影响,导致只能把数据加载进去,但是就不去调用getView();
除非这个viewpager的页面被重新加载,才会去更新listview的数据。

qq_26763799
qq_26763799 楼主解决没,我最近也遇到这个问题,怎么解决vp+fragment的listview刷新问题...
大约 4 年之前 回复

先看listview是否绑定了adapter,然后看是否调用了notifyDataSetChanged,再看数据源是否有数据

你刷新时怎么写的,如果制定了adapter,调用adapter的notifyDataSetChanged就可以了,除非你的数据源中没有数据

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android 中 fragment 嵌入listview
首先在MainActivity中 ``` public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } ``` 然后在主布局activity_main中只有一个fragment ``` <fragment android:id="@+id/title_fragment" android:layout_width="wrap_content" android:layout_height="wrap_content" android:name="com.example.news.TitleFragment" /> ``` 在com.example.news.TitleFragment里面 我定义了listview ,和自己定义的newsadapter适配器, 还有要装入listview中的数据data。 代码如下: ``` public class TitleFragment extends Fragment implements OnItemClickListener { private NewsAdapter adapter; private List<News> data; private ListView listView; private boolean isTwoPane; @Override public void onAttach(Activity activity) { // TODO Auto-generated method stub super.onAttach(activity); adapter = new NewsAdapter(activity, R.layout.title_list_item, data); data = getNews(); } public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub Log.i("test", "onCreateView"); View view = inflater.inflate(R.layout.title_frag, container, false); listView = (ListView) view.findViewById(R.id.listView1); listView.setAdapter(adapter); // listView.setOnItemClickListener(this); return view; } private List<News> getNews() { List<News> data = new ArrayList<News>(); News news1 = new News(); news1.setTitle("chongqing is beautiful city!!!"); news1.setContext("There have everything in ChongQing,delicious food ,great building and hot girls "); data.add(news1); News news2 = new News(); news2.setTitle("chongqing is beautiful city2222!!!"); news2.setContext("There have everything in ChongQing,delicious food ,great building and hot girls "); data.add(news2); return data; } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub } } ``` 在newsadapter适配器: 我试过不用自己定义的适配器就可以,但是用自己定义的适配器就会出错,但是我不知道到底错误在哪。 代码如下: ``` public class NewsAdapter extends ArrayAdapter<News> { private int resourceId; public NewsAdapter(Context context, int textViewResourceId, List<News> objects) { super(context, textViewResourceId, objects); // TODO Auto-generated constructor stub resourceId = textViewResourceId; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub News news = getItem(position); View view; if (convertView == null) { view = LayoutInflater.from(getContext()).inflate(resourceId, null); } else { view = convertView; } TextView titleText = (TextView) view.findViewById(R.id.title); titleText.setText(news.getTitle()); return view; } } ``` R.layout.title_list_item代码: ``` <TextView android:id="@+id/title" android:layout_width="match_parent" android:layout_height="wrap_content" > </TextView> ``` 最后就出现binary xml file line #11:error inflating class fragment 错误。 本人安卓小白一名,求大神告诉我到底哪里错了呀。跪谢
Android Fragment切换导致listview有数据也不显示
网上的方法基本上都试过了,没效果。 适配器能进getView(),返回的count也正常、 ``` ```public class Index extends AppCompatActivity { boolean flag = true;//判断数据是否第一加载 private List<listView> listView = new ArrayList<listView>(); private ListFragment listFragment = new ListFragment(); private MineFragment mineFragment = new MineFragment(); private OrderFragment orderFragment = new OrderFragment(); Fragment currentFragment = listFragment; FragmentManager fm = getSupportFragmentManager(); Fragment f = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_index); //解析菜单文件 initData(); final ListViewAdapter listViewAdapter = new ListViewAdapter(Index.this,R.layout.listlayout,listView); final ListView dataList = findViewById(R.id.Data_list); dataList.setAdapter(listViewAdapter); //导航图片设置初始化 ImageView imageView1 = findViewById(R.id.nav_index); ImageView imageView2 = findViewById(R.id.nav_order); ImageView imageView3 = findViewById(R.id.nav_mine); View.OnClickListener listener= new OnClickListener(){ @Override public void onClick(View v) { switch (v.getId()){ case R.id.nav_index: listViewAdapter.notifyDataSetChanged(); dataList.setAdapter(listViewAdapter); showFragment(listFragment); break; case R.id.nav_mine: showFragment(mineFragment); break; default: showFragment(orderFragment); break; } } }; imageView1.setOnClickListener(listener); imageView2.setOnClickListener(listener); imageView3.setOnClickListener(listener); } private void showFragment(Fragment fragment){ FragmentTransaction ft = fm.beginTransaction(); if (currentFragment != fragment){// 判断传入的fragment是不是当前的currentFragmentgit ft.hide(currentFragment);// 不是则隐藏 currentFragment = fragment; // 然后将传入的fragment赋值给currentFragment if (!fragment.isAdded()){ // 判断传入的fragment是否已经被add()过 ft.add(R.id.fragment,fragment).show(fragment).commit(); }else{ ft.show(fragment).commit(); } } } private void initData() { listView list = new listView("系统提示","测试内容信息","2019-3-14",R.drawable.shop1); listView.add(list); listView list1 = new listView("二号餐厅","测试内容信息","2019-3-14",R.drawable.shop2); listView.add(list1); } } 适配器代码 public class ListViewAdapter extends ArrayAdapter { private final int resourceId; public ListViewAdapter(Context context, int resource, List<listView> objects ) { super(context, resource, objects); this.resourceId = resource; } @Override public View getView(int position,View convertView, ViewGroup parent) { listView listView = (listView) getItem(position);// 获取当前项的Fruit实例 View view = LayoutInflater.from(getContext()).inflate(resourceId,null);//实例化一个对象 ImageView listImage = (ImageView) view.findViewById(R.id.shop_img);//获取该布局内的图片视图 TextView listText = (TextView) view.findViewById(R.id.shop_name);//获取该布局内的文字视图 listImage.setImageResource(listView.getImageId());//设置资源 listText.setText(listView.getTitle()); System.out.println("被调用"); return view; } } listview的Xml <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/index_gray"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:layout_width="match_parent" android:layout_height="500dp" android:background="@color/index_white" android:id="@+id/Data_list"> </ListView> </LinearLayout> </FrameLayout> Activity.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/con_index" android:layout_width="match_parent" android:background="@color/index_gray" android:layout_height="match_parent"> <fragment android:layout_width="match_parent" android:layout_height="600dp" android:name="com.example.administrator.app.ListFragment" android:id="@+id/fragment"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="60dp" android:padding="5dp" android:orientation="horizontal" android:layout_alignParentBottom="true" android:background="@color/index_white"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <ImageView android:id="@+id/nav_index" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/shouye" android:layout_alignParentLeft="true"/> <ImageView android:id="@+id/nav_order" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/dingdan" android:layout_centerHorizontal="true"/> <ImageView android:id="@+id/nav_mine" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/wode" android:layout_alignParentRight="true"/> </RelativeLayout> </LinearLayout> </RelativeLayout>
fragment 中 删除listview中的一行,执行更新数据,数据已经删除了,界面更新不了。
fragment 中 删除listview中的一行,执行更新数据,数据已经删除了,界面更新不了。退出程序,重新加载fragment界面可以显示删除后的界面 请问改怎么刷新 fragment 。网上说的adapter.notifyDataSetChanged();不行。新手求解答,谢谢大神!!!
android在fragment中显示ListView!! 在线求~~
最近在做一个小项目 音乐APP播放器,用了不少在Activity中嵌入的Fragment 我想在fragment中使用ListView显示扫描到的本地音乐文件 懵逼了好久,求助.... 怎么才能实现这个功能? PS:在不使用ListFragment的情况下~~
怎么给Fragment中的ListView绑定数据
急求指点!我的Fragment加载的布局里有一个ListView控件,ListView内行有一个lmageView 我想给这个ImageVieW绑定数据 求大神指点怎么弄啊,我老报错
Android,Fragment中的ListView为何不显示
这是Fragment的代码 ``` public class LeftMenuFragment extends BaseFragment { private ListView listView; private ArrayList<NewsMenu.NewsMenuData> menuDatas; private MyAdapter myAdapter; private View view; @Override public View initView() { view = View.inflate(mActivity, R.layout.sliding_left_menu,null); listView = (ListView) view.findViewById(R.id.lv_left_menu); return view; } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return initView(); } @Override public void initData() { } /** * 更新LeftMenu * @param datas */ public void setLeftMenu(ArrayList<NewsMenu.NewsMenuData> datas) { menuDatas = datas; for(NewsMenu.NewsMenuData newsMenuData:menuDatas) { System.out.println(newsMenuData.toString()); } myAdapter = new MyAdapter(); listView.setAdapter(myAdapter); } //ListView的Adapter class MyAdapter extends BaseAdapter{ @Override public int getCount() { return menuDatas.size(); } @Override public NewsMenu.NewsMenuData getItem(int position) { return menuDatas.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = View.inflate(mActivity, R.layout.item_listview_left_menu, null); TextView tvMenu = (TextView) view.findViewById(R.id.tv_item_listview_leftmenu); NewsMenu.NewsMenuData item = getItem(position); tvMenu.setText(item.title); return view; } } } ``` 这是布局文件的代码 ``` <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:id="@+id/sliding_left_menu" android:background="#000" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="#fff" android:gravity="center_horizontal" android:textSize="20sp" android:text="你好"/> <ListView android:id="@+id/lv_left_menu" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="80dp"/> </LinearLayout> ``` 这里面的TextView“你好”是可以显示出来的,当远程调用Fragment中的setLeftMenu方法,为何ListView不显示呢,
ViewPager 嵌套 fragment 中无法显示fragment中的listview内容
我在viewpager中用fragment作为加载页,然后在fragment中嵌入了一个listview,单独测试时fragment能载入listview内容,但是在viewpager中加载fragment时,无法显示listview内容,fragment其他组件能显示 viewpager 代码: import java.util.ArrayList; import java.util.List; import com.nineteen.myandroid.R; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.text.Layout; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class AppUninstall extends FragmentActivity { ViewPager viewPager; // 内容页 List<View> views = new ArrayList<View>(); // 标题页 List<String> titles = new ArrayList<String>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.app_uninstall); viewPager = (ViewPager) findViewById(R.id.viewpager); LayoutInflater inflater = LayoutInflater.from(this); View view = inflater.inflate(R.id.appun_person, null); views.add(view); titles.add("个人应用"); view = inflater.inflate(R.layout.test_relatvelayout, null); views.add(view); titles.add("系统预装"); view = inflater.inflate(R.layout.test_button, null); views.add(view); titles.add("猜你不喜欢"); viewPager.setAdapter(new MyPagerAdapter(views, titles)); } class MyPagerAdapter extends PagerAdapter { List<View> views; List<String> titles; public MyPagerAdapter(List<View> views, List<String> titles) { this.views = views; this.titles = titles; } @Override public int getCount() { return views.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } // 获取到标题 public CharSequence getPageTitle(int position) { return titles.get(position); } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(views.get(position)); return views.get(position); } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(views.get(position)); } } } viewpage XML: <android.support.v4.view.ViewPager android:id="@+id/appun_viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" > <android.support.v4.view.PagerTabStrip android:id="@+id/pager_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="top" /> </android.support.v4.view.ViewPager> fragment代码: import java.util.ArrayList; import java.util.HashMap; import java.util.List; import com.nineteen.myandroid.R; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.widget.ListView; import android.widget.SimpleAdapter; public class PersonApp extends FragmentActivity { List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>(); ListView listView; int[] icon = { R.drawable.a005, R.drawable.a006, R.drawable.a007, R.drawable.a008, R.drawable.a009, R.drawable.a010, R.drawable.a011, R.drawable.a012, R.drawable.a013, R.drawable.a014, R.drawable.a015, R.drawable.a016, R.drawable.a017, R.drawable.a018, R.drawable.a019 }; String[] name = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "14" }; float[] size = { 1.10f, 1.10f, 1.1f, 1.1f, 1.1f, 1.1f, 1.1f, 1.1f, 1.1f, 1.1f, 1.1f, 1.1f, 1.1f, 1.1f, 2.0f }; @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); setContentView(R.layout.app_uninstall_listview); listView = (ListView) findViewById(R.id.app_uninstall_listview); List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>(); for (int i = 0; i < icon.length; i++) { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("icon", icon[i]); map.put("name", name[i]); map.put("size", size[i]); list.add(map); SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.app_uninstallitem, new String[] { "icon", "name", "size" }, new int[] { R.id.appun_imageview, R.id.appun_nameview, R.id.app_unitem_size }); listView.setAdapter(adapter); } } } fragment XML:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" android:padding="2dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:text="手机内存" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="80dp" android:text="已用" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1.31" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="GB" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:text="," /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="剩余" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1.15" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="GB" /> </LinearLayout> <ProgressBar style="@android:style/Widget.ProgressBar.Horizontal" android:layout_width="match_parent" android:layout_height="5dp" android:max="100" android:progress="52" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" android:padding="2dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:text="SD卡" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="104dp" android:text="已用" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1.31" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="GB" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:text="," /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="剩余" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1.15" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="GB" /> </LinearLayout> <ProgressBar style="@android:style/Widget.ProgressBar.Horizontal" android:layout_width="match_parent" android:layout_height="5dp" android:max="100" android:progress="52" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:padding="3dp" android:text="最近使用" /> <ListView android:id="@+id/app_uninstall_listview" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView> </LinearLayout> </LinearLayout>
android 创建同一个布局的多个fragment,加载listview数据不显示或者错乱
如题,我现在就是想做一个仿淘宝的淘抢购那样的功能,我用的是fragment, 因为不确定有多少个页面,所以我根据时间段来创建fragment, fragment里面只有一个listview 布局,首次进去的时候有数据却不显示,而且还加载了上一个页面和一下个页面, 滑动的时候,有时候不显示数据或者数据错乱了。 点击时间段来选中相应的fragment,数据又不显示出来。 这个应该怎么解决啊?
在viewpager和fragment中嵌套listview,出现setAdapter空指针情况。
在viewpager和fragment中嵌套listview,出现setAdapter空指针情况。 为了实现滑动切换界面,我写了三个fragment,在一个fragment中加入了一个listview,怎么启动都是空指针。 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference at com.example.tabhost_02.Fragment_Device.onActivityCreated(Fragment_Device.java:33) at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2619) at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:904) at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238) at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303) at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439) at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079) at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869) at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824) at androidx.fragment.app.FragmentManagerImpl.execSingleAction(FragmentManagerImpl.java:1696) at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:299) at androidx.fragment.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:235) at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1244) at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092) at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622) at android.view.View.measure(View.java:22002) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6580) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1514) at android.widget.LinearLayout.measureVertical(LinearLayout.java:806) at android.widget.LinearLayout.onMeasure(LinearLayout.java:685) at android.view.View.measure(View.java:22002) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461) at android.view.View.measure(View.java:22002) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6580) at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143) at android.view.View.measure(View.java:22002) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6580) at androidx.appcompat.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:403) at android.view.View.measure(View.java:22002) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6580) at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) at android.view.View.measure(View.java:22002) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6580) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1514) at android.widget.LinearLayout.measureVertical(LinearLayout.java:806) at android.widget.LinearLayout.onMeasure(LinearLayout.java:685) at android.view.View.measure(View.java:22002) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6580) at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) at com.android.internal.policy.DecorView.onMeasure(DecorView.java:721) at android.view.View.measure(View.java:22002) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2410) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1498) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1751) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1386) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6733) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911) at android.view.Choreographer.doCallbacks(Choreographer.java:723) at android.view.Choreographer.doFrame(Choreographer.java:658) <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/textView5" android:layout_width="358dp" android:layout_height="wrap_content" android:text="状态详情" android:textColor="#000000" android:textSize="20sp" android:textStyle="bold" /> <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="176dp" android:text="TextView" /> <TextView android:id="@+id/textView3" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="部件信息" android:textColor="#000000" android:textSize="20sp" android:textStyle="bold" /> <TextView android:id="@+id/textView6" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="温度传感器" android:textColor="#2196F3" android:textSize="18sp" android:textStyle="bold" /> <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> public class Fragment_Device extends Fragment { private List<Info> infos = new ArrayList<>(); private ListView device_info=null; public Fragment_Device(){ } public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.activity_device, container, false); initInfo(); return view; } public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initInfo(); } private void initInfo() { Info dev_1 = new Info("室内环境监控", "20摄氏度", "100小时", "2019-05-01 09:00:00"); infos.add(dev_1); Info dev_2 = new Info("室内环境监控", "25摄氏度", "100小时", "2019-05-01 09:08:00"); infos.add(dev_2); Info dev_3 = new Info("室内环境监控", "23摄氏度", "100小时", "2019-05-01 10:00:00"); infos.add(dev_3); Info dev_4 = new Info("室内环境监控", "28摄氏度", "100小时", "2019-05-01 10:30:00"); infos.add(dev_4); InfoAdapter infoAdapter = new InfoAdapter(infos,getContext()); View view = LayoutInflater.from(getContext()).inflate(R.layout.list_item,null); infos=view.findViewById(R.id.lv); device_info = view.findViewById(R.id.lv); device_info.setAdapter(infoAdapter); } }
android fragment中listview.setAdapter为空的问题
android新手想多联系下fragment的使用,可在listview.setAdapter时遇到了如下问题: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference at com.example.sms.InsertFragment.onCreate(InsertFragment.java:73) 以下是代码 ``` private ListView insert_choose_listView; ArrayList<HashMap<String, String>> listItem; MyAdapter myAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } listItem = new ArrayList<HashMap<String,String>>(); HashMap<String, String> map = new HashMap<String, String>(); map.put("Insert"," Insert Teacher");listItem.add(map); map.put("Insert"," Insert Student");listItem.add(map); map.put("Insert"," Insert Course");listItem.add(map); myAdapter=new MyAdapter(this.getActivity()); insert_choose_listView.setAdapter(myAdapter); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view=inflater.inflate(R.layout.fragment_insert, container, false); insert_choose_listView=(ListView)view.findViewById(R.id.insert_choose_listview); return view; } private class MyAdapter extends BaseAdapter { private LayoutInflater mInflater;//得到一个LayoutInfalter对象用来导入布局 public MyAdapter (Context context){ this.mInflater= LayoutInflater.from(context); } public int getCount(){ return listItem.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(final int position, View convertView, ViewGroup parent) { InsertFragment.MyAdapter.ViewHolder holder; //观察convertView随ListView滚动情况 Log.v("MyListViewBase", "getView " + position + " " + convertView); if (convertView == null) { convertView = mInflater.inflate(R.layout.flistviewlayout,null); holder = new InsertFragment.MyAdapter.ViewHolder(); /**得到各个控件的对象*/ holder.title = (TextView) convertView.findViewById(R.id.ftext); convertView.setTag(holder);//绑定ViewHolder对象 } else{ holder = (InsertFragment.MyAdapter.ViewHolder)convertView.getTag();//取出ViewHolder对象 } /**设置TextView显示的内容,即我们存放在动态数组中的数据*/ holder.title.setText(listItem.get(position).get("Insert").toString()); return convertView; } /**存放控件*/ public final class ViewHolder{ public TextView title; } ``` 报错的73行是insert_choose_listView.setAdapter(myAdapter);这句 我在Activity中这样加入ListView是不会报错的可是放到Fragment中就成了空的 求解答
在fragment中的listView问题
在fragment中显示一个自定义listView,但是运行后什么也没显示。 public class Tab1 extends Fragment implements ListView.OnItemClickListener{ private ArrayList<Custom> fetch = new ArrayList<Custom>(); private ContactsAdapter adapter; private ListView lv; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle saveInstanceState){ View v = inflater.inflate(R.layout.tab_layout, container, false); Custom one = new Custom("Hoang Ha", "01672286349"); Custom two = new Custom("Ha Link", "03203590176"); fetch.add(one); fetch.add(two); lv =(ListView)v.findViewById(R.id.list); adapter = new ContactsAdapter(getActivity(), fetch); lv.setAdapter(adapter); lv.setOnItemClickListener(this); return v; } public class Custom{ private String contactName; private String contactPhone; public Custom(String st1, String st2){ contactName = st1; contactPhone = st2; } public String getName(){ return contactName; } public String getPhone(){ return contactPhone; } public void setName(String st1){ contactName = st1; } public void setPhone(String st2){ contactPhone = st2; } } @Override public void onItemClick(AdapterView<?> ad, View v, int position, long id) { // TODO Auto-generated method stub } private class ContactsAdapter extends BaseAdapter{ private FragmentActivity activity; private LayoutInflater inflater; private ArrayList<Custom> data; public ContactsAdapter (FragmentActivity a, ArrayList<Custom> d){ activity = a; data = d; inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { // TODO Auto-generated method stub data.size(); return 0; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return position; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View v = convertView; v = inflater.inflate(R.layout.list_row, null); TextView contact_name = (TextView)v.findViewById(R.id.contact_name); TextView phone_number = (TextView)v.findViewById(R.id.phone_number); //final Custom custom = entries.get(position); final Custom custom = data.get(position); contact_name.setText(custom.getName()); phone_number.setText(custom.getPhone()); return v; } } } 这是列表xml代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:background="@color/light_dark" android:padding="5dip" > <TextView android:id="@+id/contact_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/name" android:textColor="@color/white" android:typeface="sans" android:textSize="@dimen/font_medium" android:textStyle="bold"/> <TextView android:id="@+id/phone_number" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/name" android:textColor="@color/white" android:typeface="sans" android:textSize="@dimen/font_small" /> </LinearLayout>
求教 如何刷新Fragment中的数据
用replace的方式实现Fragment跳转 跳转到的Fragment中有listview从数据库中读取数据 我在第一个Fragment中获得了listview读取数据where语句中的条件传到第二个Fragment里面,然后问题出现了数据是传过来了 可是只有第一次切换的时候listview能显示对应的数据 返回第一个Fragment改变where条件的时候第二个Fragment中的listview始终显示的是第一次进来的数据,想问一下这里要怎么解决,如何刷新Fragment呢?或者每次Fragment返回的时候直接销毁当前Fragment,求大神指点一下方法啊
androidfragment中嵌套fragment第二个fragment中的ListView不显示
我在fragment中在嵌套一个fragment 然后再里面定义一个listview 设置adapter (adapter) 中有数据),可是listview 不显示, 在同样的布局中 我定义了一个TextView 显示正常。 这个listview它不是只显示一行或者什么的,就是一片空白,求解释,我在网上找不到资料。
Android ViewPager内的fragment数据如何更新?
ViewPager有三页,每一页有一个fragment,fragment内的数据是从内部存储读取的,点击刷新后我需要fragment内的数据更新,然后ViewPager肯定也需要刷新。但是fragment里listview的adapter是活动创建时创建的,而后面点击刷新后执行adapter.notifyDataSetChanged();数据好像不能更新,该怎么解决啊!
fragment中的listView点击item打开另一个fragment
我在项目里创建了一个fragment(A),现在fragment(A)中有一个listView。我想通过点击这个listView中的item打开另一个fragment(B)该如何实现?本人新手,《第一行代码》中说用FragmentManager 和 FragmentTransaction的replace,但是加入当中点击没有任何反应。 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { EquipInfo equipInfo=list.get(position); String se="小型游艺设备"; String be="大型游艺设备"; if(equipInfo.getEquipDes().equals(be)){ atFragment fragment=new atFragment(); ft=manager.beginTransaction(); ft.replace(R.id.content_layout,fragment); ft.commit(); } else if(equipInfo.getEquipDes().equals(se)){ } } });
安卓bottom navigation + Fragment +Listview 显示数据,有时显示不出来
androidStudio 直接创建一个带有bottom navigation 的活动 然后在监听器里用replace切换fragment(一共有三个fragment对应navigation)fragment的onAttach访问tomcat获取数据 onCreateView方法将数据绑定在fragment的 listview上。有时运行可以直接显示数据,有时首页一片空白,点击navigation切换碎片再切换回首页,首页的listview才显示数据。
Fragment中listview的相关问题
在程序中有两个tab。每个tab都有它各自的fragment。在其中的一个tab上我需要放置一个列表视图,目的是从存储数组中接收数据,然后再作为列表显示。 public class Frag3 extends Fragment{ ListView lv1; ProgressDialog ShowProgress; public ArrayList<Post> PostList = new ArrayList<Post>(); TextView tv1; Button button1; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (container == null) { return null; } View view = inflater.inflate(R.layout.tab3, container, false); //View tv = view.findViewById(R.id.textView1); View listView = view.findViewById(R.id.listView1); String[] values = new String[] { "Android", "iPhone", "WindowsMobile", "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X", "Linux", "OS/2" }; ArrayAdapter<String> files = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, values); lv1.setAdapter(files); return view; } } 我根据不同的web参考文献中试过了各种方法,但是都不对。在这段代码后还要添加什么呢?大家能给我引荐一个正确的方法吗?
从activity返回到fragment时listview不显示
Fragment代码如下: ``` public class TodolistFragment extends Fragment { private List<Todo> todos = new ArrayList<>(); //NotificationManager notificationManager; SimpleAdapter adapter; ListView listView; View view; Button button; private int uid; private String date; @Override public void onAttach(Context context) { super.onAttach(context); uid = ((HomePage)context).user_id; date = ((HomePage)context).date; //buttonClickListener = (OnItemButtonClickListener) context; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); button = (Button)getActivity().findViewById(R.id.add_list); button.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ showDialog(); } }); LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance(getActivity()); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("android.intent.action.CART_BROADCAST"); BroadcastReceiver mItemViewListClickReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String msg = intent.getStringExtra("data"); if("refresh".equals(msg)) init(); } }; broadcastManager.registerReceiver(mItemViewListClickReceiver, intentFilter); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.activity_todolist_fragment, container, false); init(); listView = (ListView)view.findViewById(R.id.list); return view; } /*public interface OnItemButtonClickListener{ void onItemViewClick(View v); }*/ @Override public void onResume(){ System.out.println("todolist onresume!"); super.onResume(); //init(); } private void init(){ listView = (ListView)view.findViewById(R.id.list); MySqliteDB mydb = new MySqliteDB(view.getContext(),"MyDB", null, 1); SQLiteDatabase db = mydb.getReadableDatabase(); Cursor cursor; cursor = db.query("todolist",new String[]{"list_id","title","total_time","complete_time"},"user_id="+uid,null,null,null,null); ArrayList<Map<String, String>> list = new ArrayList<Map<String, String>>(); while (cursor.moveToNext()) { //数据存入map Map<String, String> map = new HashMap<String, String>(); final int t = cursor.getInt(cursor.getColumnIndex("total_time"))-cursor.getInt(cursor.getColumnIndex("complete_time")); if(t > 0) { final int list_id = cursor.getInt(cursor.getColumnIndex("list_id")); map.put("title", cursor.getString(cursor.getColumnIndex("title"))); map.put("time", t + "分钟"); //map添加到集合list中 list.add(map); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent intent = new Intent(); Bundle bundle = new Bundle(); bundle.putInt("list_id", list_id); bundle.putInt("user_id", uid); bundle.putInt("time", t); bundle.putString("date", date); intent.putExtras(bundle); intent.setClass(getActivity(), Timing.class); getActivity().startActivity(intent); } }); } } adapter=new SimpleAdapter(getContext(),list,R.layout.todolist_item, new String[]{"title","time"},new int[]{R.id.todolist_title,R.id.todolist_time}); listView.setAdapter(adapter); } private void showDialog() { //此处省略了 } } ```
关于在viewpage中的fragment中刷新listview的问题
比如说listview是订单列表,每个item上都有修改价格和取消订单的按钮,点击修改价格的按钮会跳到修改价格的界面,修改后然后返回刷新listview对应的item上的价格, ``` datasList.clear(); datasList.addAll(list); adapter.setData(datasList); adapter.notifyDataSetChanged(); ``` 这样界面的价格会刷新,可是我用同样的方法取消订单,跳到取消订单页,填写取消原因后在返回,被取消的item还在,求各位大神指点一下。 返回来之后数据都是拉的接口。
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
JavaScript 为什么能活到现在?
作者 | 司徒正美 责编 |郭芮 出品 | CSDN(ID:CSDNnews) JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用JavaScript的选项。甚至在jQuery时代有人问出这样的问题,jQuery与JavaScript哪个快?在Babel.js出来之前,发明一门全新的语言代码代替JavaScript...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
实战:如何通过python requests库写一个抓取小网站图片的小爬虫
有点爱好的你,偶尔应该会看点图片文字,最近小网站经常崩溃消失,不如想一个办法本地化吧,把小照片珍藏起来! 首先,准备一个珍藏的小网站,然后就可以开始啦! 第一步 我们先写一个获取网站的url的链接,因为url常常是由page或者,其他元素构成,我们就把他分离出来,我找到的网站主页下有图片区 图片区内有标题页,一个标题里有10张照片大概 所以步骤是: 第一步:进入图片区的标题页 def getH...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
相关热词 c# 引用mysql c#动态加载非托管dll c# 两个表数据同步 c# 返回浮点json c# imap 链接状态 c# 漂亮字 c# 上取整 除法 c#substring c#中延时关闭 c#线段拖拉
立即提问