在fragment转换中出现java.lang.NullPointerException

最近学校让做个android音乐播放器,我跟着论坛的教学做到这里时会出现闪退的问题,不知道怎么解决,求助(我是小白,如果可以请说详细些,谢谢啦)

5个回答

放置fragment的activity没有实现OnMainFragmentInteractionListener这个接口。
楼主如果不需要用到这个接口, 就把@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof OnMainFragmentInteractionListener) {
mListener = (OnMainFragmentInteractionListener) context;
} else {
throw new RuntimeException(context.toString()

  • " must implement OnFragmentInteractionListener"); } } 注释掉吧!!! 另外 import static com.example.ycxh.atry.R.id.myMusicButton;

but = (Button)rootView.findViewById(myMusicButton);
这种写法实在不提倡

Rock_is_a_goodboy
Rock_is_a_goodboy 回复HelloWorld_swh: 解决了,谢谢大兄弟
大约 3 年之前 回复
HelloWorld_swh
HelloWorld_swh mListener = (OnMainFragmentInteractionListener) context这个改成mListener = (OnMainFragmentInteractionListener) getactivity试试
大约 3 年之前 回复
HelloWorld_swh
HelloWorld_swh 回复Rock_is_a_goodboy: 一般我都是用V4包下的fragment,然后主activity是继承fragmentactivity这个类。
大约 3 年之前 回复
Rock_is_a_goodboy
Rock_is_a_goodboy 你好,那个接口实现了,把public void onAttach(Context context)注释掉还是不行,我实在是不知道要怎么改了(。﹏。)
大约 3 年之前 回复

空指针异常一般都是最容易解决的。
你看看报的错误是对应那一行的代码,这一行代码中的那个对象是空指针异常的原因。
检查这个对象为空的原因以及该对象在上下文的使用。

Rock_is_a_goodboy
Rock_is_a_goodboy 报错指到了public void onClick(View v)这里
大约 3 年之前 回复

mListener.onMainFragmentInteraction(AppConstant.PlayerMsg.CHANGE_TO_MY_MUSIC_FRAGMENT);
mListener这个变量没定义吧?多看几遍

Rock_is_a_goodboy
Rock_is_a_goodboy private OnMainFragmentInteractionListener mListener; 这个有的,报错就是指到这一句
大约 3 年之前 回复

这个是出错的代码

package com.example.ycxh.atry;

import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

import static com.example.ycxh.atry.R.id.myMusicButton;

public class MainFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.fragment_main, container, false);


    but = (Button)rootView.findViewById(myMusicButton);                                                 //切换至我的音乐Fragment
            but.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mListener.onMainFragmentInteraction(AppConstant.PlayerMsg.CHANGE_TO_MY_MUSIC_FRAGMENT);
        }
    });
    return rootView;
}

      public interface OnMainFragmentInteractionListener {
    // TODO: Update argument type and name
   // void onFragmentInteraction(int message);

    void onMainFragmentInteraction(int message);

}

package com.example.ycxh.atry;

import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import static com.example.ycxh.atry.R.id.myMusicButton;

/**

  • A simple {@link Fragment} subclass.
  • Activities that contain this fragment must implement the
  • {@link MainFragment.OnMainFragmentInteractionListener} interface
  • to handle interaction events.
  • Use the {@link MainFragment#newInstance} factory method to
  • create an instance of this fragment.
    */
    public class MainFragment extends Fragment {
    // TODO: Rename parameter arguments, choose names that match
    // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";

    // TODO: Rename and change types of parameters
    private String mParam1;
    private String mParam2;

    private Button but;
    private OnMainFragmentInteractionListener mListener;

    public MainFragment() {
    // Required empty public constructor
    }

    /**

    • Use this factory method to create a new instance of
    • this fragment using the provided parameters. *
    • @param param1 Parameter 1.
    • @param param2 Parameter 2.
    • @return A new instance of fragment MainFragment. */ // TODO: Rename and change types and number of parameters public static MainFragment newInstance(String param1, String param2) { MainFragment fragment = new MainFragment(); Bundle args = new Bundle(); args.putString(ARG_PARAM1, param1); args.putString(ARG_PARAM2, param2); fragment.setArguments(args); return fragment; }

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
    mParam1 = getArguments().getString(ARG_PARAM1);
    mParam2 = getArguments().getString(ARG_PARAM2);
    }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.fragment_main, container, false);
    
    but = (Button)rootView.findViewById(myMusicButton);                                                 //切换至我的音乐Fragment
            but.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mListener.onMainFragmentInteraction(AppConstant.PlayerMsg.CHANGE_TO_MY_MUSIC_FRAGMENT);
        }
    });
    return rootView;
    

    }

    // TODO: Rename method, update argument and hook method into UI event
    public void onButtonPressed(int message) {
    if (mListener != null) {
    mListener.onMainFragmentInteraction(message);
    }
    }

    @Override
    public void onAttach(Context context) {
    super.onAttach(context);
    if (context instanceof OnMainFragmentInteractionListener) {
    mListener = (OnMainFragmentInteractionListener) context;
    } else {
    throw new RuntimeException(context.toString()
    + " must implement OnFragmentInteractionListener");
    }
    }

    @Override
    public void onDetach() {
    super.onDetach();
    mListener = null;
    }

    /**

    • This interface must be implemented by activities that contain this
    • fragment to allow an interaction in this fragment to be communicated
    • to the activity and potentially other fragments contained in that
    • activity.
    • See the Android Training lesson <a href=
    • "http://developer.android.com/training/basics/fragments/communicating.html"
    • Communicating with Other Fragments for more information.
      */
      public interface OnMainFragmentInteractionListener {
      // TODO: Update argument type and name
      // void onFragmentInteraction(int message);

      void onMainFragmentInteraction(int message);
      }
      }

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
新人求助 java.lang.NullPointerException
04-26 21:42:40.039: E/AndroidRuntime(1125): FATAL EXCEPTION: main 04-26 21:42:40.039: E/AndroidRuntime(1125): Process: com.example.remotecontrol, PID: 1125 04-26 21:42:40.039: E/AndroidRuntime(1125): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.remotecontrol/com.example.remotecontrol.RemoteControlActivity}: java.lang.NullPointerException 04-26 21:42:40.039: E/AndroidRuntime(1125): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176) 04-26 21:42:40.039: E/AndroidRuntime(1125): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226) 04-26 21:42:40.039: E/AndroidRuntime(1125): at android.app.ActivityThread.access$700(ActivityThread.java:135) 04-26 21:42:40.039: E/AndroidRuntime(1125): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397) 04-26 21:42:40.039: E/AndroidRuntime(1125): at android.os.Handler.dispatchMessage(Handler.java:102) 04-26 21:42:40.039: E/AndroidRuntime(1125): at android.os.Looper.loop(Looper.java:137) 04-26 21:42:40.039: E/AndroidRuntime(1125): at android.app.ActivityThread.main(ActivityThread.java:4998) 04-26 21:42:40.039: E/AndroidRuntime(1125): at java.lang.reflect.Method.invokeNative(Native Method) 04-26 21:42:40.039: E/AndroidRuntime(1125): at java.lang.reflect.Method.invoke(Method.java:515) 04-26 21:42:40.039: E/AndroidRuntime(1125): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 04-26 21:42:40.039: E/AndroidRuntime(1125): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 04-26 21:42:40.039: E/AndroidRuntime(1125): at dalvik.system.NativeStart.main(Native Method) 04-26 21:42:40.039: E/AndroidRuntime(1125): Caused by: java.lang.NullPointerException 04-26 21:42:40.039: E/AndroidRuntime(1125): at com.example.remotecontrol.RemoteControlFragment.onCreateView(RemoteControlFragment.java:43) 04-26 21:42:40.039: E/AndroidRuntime(1125): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500) 04-26 21:42:40.039: E/AndroidRuntime(1125): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927) 04-26 21:42:40.039: E/AndroidRuntime(1125): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) 04-26 21:42:40.039: E/AndroidRuntime(1125): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 04-26 21:42:40.039: E/AndroidRuntime(1125): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467) 04-26 21:42:40.039: E/AndroidRuntime(1125): at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:570) 04-26 21:42:40.039: E/AndroidRuntime(1125): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171) 04-26 21:42:40.039: E/AndroidRuntime(1125): at android.app.Activity.performStart(Activity.java:5253) 04-26 21:42:40.039: E/AndroidRuntime(1125): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2149) 04-26 21:42:40.039: E/AndroidRuntime(1125): ... 11 more
Android java.lang.NullPointerException
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { initAdData(); View view = inflater.inflate(R.layout.fragment_travel, container, false); dot0 = view.findViewById(R.id.v_dot0); dot1 = view.findViewById(R.id.v_dot1); dot2 = view.findViewById(R.id.v_dot2); dot3 = view.findViewById(R.id.v_dot3); dot4 = view.findViewById(R.id.v_dot4); tv_title = (TextView)view.findViewById(R.id.tv_title); adViewPager = (ViewPager)this.getActivity().findViewById(R.id.vp); return view; } private void initAdData() { // 广告数据 adList = getBannerAd(); imageViews = new ArrayList<ImageView>(); // 点 dots = new ArrayList<View>(); dotList = new ArrayList<View>(); dots.add(dot0); dots.add(dot1); dots.add(dot2); dots.add(dot3); dots.add(dot4); ViewPager adViewPager = new ViewPager(getActivity()); adViewPager.setAdapter(new MyAdapter());// 设置填充ViewPager页面的适配器 // 设置一个监听器,当ViewPager中的页面改变时调用 adViewPager.setOnPageChangeListener(new MyPageChangeListener()); addDynamicView(); } private void addDynamicView() { // 动态添加图片和下面指示的圆点 // 初始化图片资源 for (int i = 0; i < adList.size(); i++) { ImageView imageView = new ImageView(getActivity()); // 异步加载图片 mImageLoader.displayImage(adList.get(i).getImgUrl(), imageView, options); imageView.setScaleType(ScaleType.CENTER_CROP); imageViews.add(imageView); dots.get(i).setVisibility(View.VISIBLE);//这行java.lang.NullPointerException dotList.add(dots.get(i)); } } dots.get(i).setVisibility(View.VISIBLE);//这行java.lang.NullPointerException
Android Integer cannot be cast to java.lang.Long
先保存一个long数据:SherfUtils.setLongData(Constant.SHERF_KEY_BOOK_START_TIME, System.currentTimeMillis()) 再取出时SherfUtils.getLongData(Constant.SHERF_KEY_BOOK_START_TIME) 报错:java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long at android.app.SharedPreferencesImpl.getLong(SharedPreferencesImpl.java:249) at com.tulingweier.yw.minihorsetravelapp.utils.SherfUtils.getUsingCarStartTime(Unknown Source) at com.tulingweier.yw.minihorsetravelapp.fragment.UseCarFragment.onResume(Unknown Source) 注: SherfUtils是一个封装类: public static void setLongData(String key, long vaule) { MyApp.getSherf().edit().putLong(key, vaule).commit(); } public static long getLongData(String key) { return MyApp.getSherf().getLong(key, 10); }
java.lang.IllegalStateException
大神,求解,为什么会报这种错误java.lang.IllegalStateException: Fragment already added @Override public Object instantiateItem(ViewGroup container, int position) { // System.out.println("instantiateItem..............."); // 得到缓存的fragment Fragment fragment = (Fragment) super.instantiateItem(container, position); // 得到tag String fragmentTag = fragment.getTag(); if (fragmentFlags.get(position % fragmentFlags.size())) { System.out.println("进入instantiateItem该方法了"); FragmentTransaction beginTransaction = fm.beginTransaction(); // 移除旧的fragment beginTransaction.remove(fragment); // 换成新的fragment fragment = mFragments.get(position); // 添加新fragment时必须用前面获得的tag beginTransaction.add(container.getId(), fragment, fragmentTag); beginTransaction.attach(fragment); beginTransaction.commit(); //复位更新标志 fragmentFlags.set(position, false); } return fragment; } 这个是和viwewpagerindicator同时使用的,就像网易和今日头条的标题一样,可以编辑标题,当标题的顺序发生变化,对应的fragment也要发生变化,但是执行完代码就报了这个异常,求大神解决。
java.lang.IndexOutOfBoundsException越界问题
getSupportFragmentManager().getFragments().clear()当我在执行这一句的时候, 会报java.lang.IndexOutOfBoundsException这个异常,请问大神,这是为什么?
关于java.lang.ClassCastException的问题 求大神解答 错误日志贴上 谢谢了
FATAL EXCEPTION: main Process: com.example.fxr.myapplication, PID: 10943 java.lang.ClassCastException: com.example.fxr.myapplication.friends_top cannot be cast to android.support.v4.app.Fragment at com.example.fxr.myapplication.messagetop$1.getItem(messagetop.java:54) at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:101) at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:1006) at android.support.v4.view.ViewPager.populate(ViewPager.java:1154) at android.support.v4.view.ViewPager.populate(ViewPager.java:1088) at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1614) at android.view.View.measure(View.java:16514) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1052) at android.widget.LinearLayout.onMeasure(LinearLayout.java:590) at android.view.View.measure(View.java:16514) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1052) at android.widget.LinearLayout.onMeasure(LinearLayout.java:590) at android.view.View.measure(View.java:16514) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at android.view.View.measure(View.java:16514) at android.widget.LinearLayout.measureVertical(LinearLayout.java:847) at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) at android.view.View.measure(View.java:16514) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at android.view.View.measure(View.java:16514) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) at android.view.View.measure(View.java:16514) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291) at android.view.View.measure(View.java:16514) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1912) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1109) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1291) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:996) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5600) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) at android.view.Choreographer.doCallbacks(Choreographer.java:574) at android.view.Choreographer.doFrame(Choreographer.java:544) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5095) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) at dalvik.system.NativeStart.main(Native Method)
关于Fragment嵌套Fragment出现控制帧问题 求各位大神帮助谢谢了
这是日志错误信息 09-12 23:21:22.284 13515-13515/com.example.fxr.myapplication E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.fxr.myapplication, PID: 13515 java.lang.NullPointerException at com.example.fxr.myapplication.message1_fragment.setTabSelection(message1_fragment.java:99) at com.example.fxr.myapplication.message1_fragment.onCreateView(message1_fragment.java:47) at android.app.Fragment.performCreateView(Fragment.java:1700) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:902) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1074) at android.app.BackStackRecord.run(BackStackRecord.java:684) at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1459) at android.app.FragmentManagerImpl$1.run(FragmentManager.java:450) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5095) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) at dalvik.system.NativeStart.main(Native Method)
使用fragemnt argument传递数据出现错误
java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.Serializable android.os.Bundle.getSerializable(java.lang.String)' on a null object reference 用fragment argument传递数据,运行时出现错误, UUID crimeId = (UUID) getArguments().getSerializable(ARG_CRIME_ID);
Android Studio报错 java.lang.IllegalStateException
package com.example.q9722.biancheng1; import android.media.Image; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.WindowManager; import android.widget.ImageView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ ViewPager mviewPager; mFragmentAdapter madapter; FragmentOne mone; FragmentTwo mtwo; FragmentThree mthree; List<Fragment> mFragmentList; ImageView[] mimageViews; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportActionBar().hide(); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); initViews(); madapter = new mFragmentAdapter(getSupportFragmentManager(),mFragmentList); mviewPager.setOffscreenPageLimit(3); mviewPager.setAdapter(madapter); mviewPager.setCurrentItem(0); mimageViews[1].setImageResource(R.drawable.blue_circle); mviewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for(int i=0;i<3;i++) { mimageViews[i].setImageResource(R.drawable.write_circle); } mimageViews[position].setImageResource(R.drawable.blue_circle); } @Override public void onPageScrollStateChanged(int state) { } }); } private void initViews() { mviewPager = (ViewPager) findViewById(R.id.viewpager); mFragmentList = new ArrayList<Fragment>(); mone = new FragmentOne(); mtwo = new FragmentTwo(); mthree = new FragmentThree(); mFragmentList.add(mone); mFragmentList.add(mtwo); mFragmentList.add(mthree); mimageViews = new ImageView[3]; mimageViews[0] = (ImageView) findViewById(R.id.iv1); mimageViews[1] = (ImageView) findViewById(R.id.iv2); mimageViews[2] = (ImageView) findViewById(R.id.iv3); mimageViews[0].setOnClickListener(this); mimageViews[1].setOnClickListener(this); mimageViews[2].setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.iv1: mviewPager.setCurrentItem(0,true); break; case R.id.iv2: mviewPager.setCurrentItem(1,true); break; case R.id.iv3: mviewPager.setCurrentItem(2,true); break; } } }
安卓module打包成aar文件,运行后报错java.lang.NoSuchMethodError:
报错信息: java.lang.NoSuchMethodError: No static method setOnApplyWindowInsetsListener(Landroid/view/View;Landroid/support/v4/view/OnApplyWindowInsetsListener;)V in class Landroid/support/v4/view/ViewCompatLollipop; or its super classes (declaration of 'android.support.v4.view.ViewCompatLollipop' appears in /data/app/com.b1993423839.zsa-1/base.apk:classes46.dex) 下面是我的v4和v7包都放在module的libs中引用,版本都是一致的,最后打包的时候也是将引用的aar文件放入主项目的libs中引用,最后将module的aar引入到主项目中,为啥运行的时候会出现找不到v4的方法呢? //安卓高级组件implementation(name: 'recyclerview-v7-25.2.0', ext: 'aar') implementation(name: 'constraint-layout-1.0.2', ext: 'aar') implementation files('libs/constraint-layout-solver-1.0.2.jar') implementation(name: 'design-25.2.0', ext: 'aar') //安卓兼容包 implementation(name: 'animated-vector-drawable-25.2.0', ext: 'aar') implementation(name: 'appcompat-v7-25.2.0', ext: 'aar') implementation(name: 'support-compat-25.2.0', ext: 'aar') implementation(name: 'support-core-ui-25.2.0', ext: 'aar') implementation(name: 'support-core-utils-25.2.0', ext: 'aar') implementation(name: 'support-fragment-25.2.0', ext: 'aar') implementation(name: 'support-media-compat-25.2.0', ext: 'aar') implementation(name: 'support-v4-25.2.0', ext: 'aar') implementation(name: 'support-vector-drawable-25.2.0', ext: 'aar') implementation(name: 'transition-25.2.0', ext: 'aar') implementation files('libs/support-annotations-25.2.0.jar') ![图片说明](https://img-ask.csdn.net/upload/201804/16/1523852888_948038.jpg)
在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); } }
Fragment 请求网络 切换另一个fragment ! 求大神解答啊 急 !
用RadioGroup 下的三个 RadioButton 管理 , 三个Fragment 是从网络上获取数据显示,网络上获取数据有延迟可能要1秒左右才能显示 ,当数据还没有显示出来时,切换到其他的 fragment 就会报错如下: FATAL EXCEPTION: main java.lang.NullPointerException at android.view.LayoutInflater.from(LayoutInflater.java:210) at com.xdj.alat.adapter.NeedSupplyAdapter.<init>(NeedSupplyAdapter.java:23) at com.xdj.alat.fragment.ServiceFragment$1.handleMessage(ServiceFragment.java:75)
thrift客户端接收不到服务端数据的问题
安卓用thrift从客户端到服务端获取数据,服务端可以接受到数据,但是客户端接受不到数据,提示未知的结果 Caused by: org.apache.thrift.TApplicationException: getMyPackage failed: unknown result at cn.orientdata.microreminder.iface.MyPackageService$Client.recv_getMyPackage(MyPackageService.java:92) at cn.orientdata.microreminder.iface.MyPackageService$Client.getMyPackage(MyPackageService.java:75) at java.lang.reflect.Method.invoke(Native Method)  at cn.orientdata.microreminder.service.IfaceManager$ProxyHandler.invoke(IfaceManager.java:152)  at java.lang.reflect.Proxy.invoke(Proxy.java:393)  at $Proxy9.getMyPackage(Unknown Source)  at cn.orientdata.microreminder.fragment.HomeFragment$2.call(HomeFragment.java:103)  at cn.orientdata.microreminder.fragment.HomeFragment$2.call(HomeFragment.java:99)  at rx.Observable.unsafeSubscribe(Observable.java:8314)  at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.java:94)  at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)  at java.util.concurrent.FutureTask.run(FutureTask.java:237)  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)  at java.lang.Thread.run(Thread.java:833)  InvocationTargetException: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at cn.orientdata.microreminder.service.IfaceManager$ProxyHandler.invoke(IfaceManager.java:152) at java.lang.reflect.Proxy.invoke(Proxy.java:393) at $Proxy9.getMyPackage(Unknown Source) at cn.orientdata.microreminder.fragment.HomeFragment$2.call(HomeFragment.java:103) at cn.orientdata.microreminder.fragment.HomeFragment$2.call(HomeFragment.java:99) at rx.Observable.unsafeSubscribe(Observable.java:8314) at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.java:94) at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:833)
fragment中通过getActivity()获取Context空指针
试了好多方法不行; 在onCreateView()中可以获取,然后在onCreateView()中获取,并设置为全局变量,然后在其它方法中使用,可是郁闷的是还报空指针 java.lang.NullPointerException at com.weather.weather.activity.WeatherFragment.jointURL(WeatherFragment.java:390) at com.weather.weather.activity.MyAsyncTask.onPostExecute(MyAsyncTask.java:99) at com.weather.weather.activity.MyAsyncTask.onPostExecute(MyAsyncTask.java:25) at android.os.AsyncTask.finish(AsyncTask.java:631) at android.os.AsyncTask.access$600(AsyncTask.java:177) at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5457) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:879) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:695) at dalvik.system.NativeStart.main(Native Method)
在安卓开发中,关于active转换成fragment
是这样的。。。我准备写个注册页面,这个原本是用active来写的,但是现在要求我们改成fragment,改的时候发现了报错 Caused by: java.lang.NumberFormatException: For input string: "" at java.lang.Integer.parseInt(Integer.java:620) at java.lang.Integer.valueOf(Integer.java:794) at com.example.fatesses.register.MainActivity$1$1.doInBackground(MainActivity.java:44) at com.example.fatesses.register.MainActivity$1$1.doInBackground(MainActivity.java:39) 这个是错误提示,顺便有偿求个大佬教我如何更改。。。269733076,这个是我的qq。。。求大佬们帮忙看看。。。
Android 数据库出现空指针,求大神来看看
java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.sqlite.SQLiteDatabase android.content.Context.openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase$CursorFactory, android.database.DatabaseErrorHandler)' on a null object reference 这是在Fragment 中使用DBHelper DBCRUD_Class dbcrud_class=new DBCRUD_Class(getContext()) 当我调用插入的方法时,就出错了
java.lang.ClassCastException
![图片说明](https://img-ask.csdn.net/upload/201703/16/1489659004_806593.png) public class GroupFragment extends Fragment { private static RecyclerView recyclerView; public String json = null; private ArrayList<ItemObject> itemObjectArrayList; private LinearLayoutManager linearLayoutManager; private GroupAdapter groupAdapter; private View listTouchInterceptor; private View detailsLayout; private UnfoldableView unfoldableView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_group, null); recyclerView = (RecyclerView) view.findViewById(R.id.group_list_view); linearLayoutManager = new LinearLayoutManager(getActivity()); recyclerView.setLayoutManager(linearLayoutManager); listTouchInterceptor = (View) view.findViewById(R.id.touch_interceptor_view); listTouchInterceptor.setClickable(false); detailsLayout = (View) view.findViewById(R.id.details_layout); detailsLayout.setVisibility(View.INVISIBLE); unfoldableView = (UnfoldableView) view.findViewById(R.id.unfoldable_view); Bitmap glance = BitmapFactory.decodeResource(getResources(), R.drawable.unfold_glance); unfoldableView.setFoldShading(new GlanceFoldShading(glance)); unfoldableView.setOnFoldingListener(new UnfoldableView.SimpleFoldingListener() { @Override public void onUnfolding(UnfoldableView unfoldableView) { listTouchInterceptor.setClickable(true); detailsLayout.setVisibility(View.VISIBLE); page_up.setVisibility(View.INVISIBLE); } @Override public void onUnfolded(UnfoldableView unfoldableView) { listTouchInterceptor.setClickable(false); } @Override public void onFoldingBack(UnfoldableView unfoldableView) { listTouchInterceptor.setClickable(true); } @Override public void onFoldedBack(UnfoldableView unfoldableView) { listTouchInterceptor.setClickable(false); detailsLayout.setVisibility(View.INVISIBLE); page_up.setVisibility(View.VISIBLE); } }); try { json = HttpUtil.getRequest("http://music.svner.com/cuiyunlong/feb_three_list.html"); } catch (Exception e) { e.printStackTrace(); } JSONObject jObject = null; int result = 0; try { jObject = new JSONObject(json); result = jObject.getInt("result"); } catch (JSONException e) { e.printStackTrace(); } if (result == 1) { JSONObject jsonObject; itemObjectArrayList = new ArrayList<ItemObject>(); try { jsonObject = new JSONObject(json); JSONArray jsonArray = jsonObject.getJSONArray("data"); for (int i = 0; i < jsonArray.length(); i++) { jsonObject = jsonArray.getJSONObject(i); ItemObject itemObject = new ItemObject(); itemObject.group_image = jsonObject.getString("group_image"); itemObject.group_top = jsonObject.getString("group_top"); itemObject.group_bottom = jsonObject.getString("group_bottom"); itemObject.group_right = jsonObject.getString("group_right"); itemObjectArrayList.add(itemObject); } } catch (JSONException e) { e.printStackTrace(); } groupAdapter = new GroupAdapter(getActivity(), itemObjectArrayList); recyclerView.setAdapter(groupAdapter); } groupAdapter.setOnItemClickListener(new GroupAdapter.OnItemClickListener() { @Override public void onItemClick(View view, int position) { unfoldableView.unfold(view, detailsLayout); } }); public class ItemObject{ public String group_image; public String group_top; public String group_bottom; public String group_right; } } public class GroupAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private final Context context; private final ArrayList<GroupFragment.ItemObject> itemObjectArrayList; public GroupAdapter(Context context, ArrayList<GroupFragment.ItemObject> itemObjectArrayList) { this.context = context; this.itemObjectArrayList = itemObjectArrayList; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { return new GroupViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.group_list_item, null)); } @Override public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) { final GroupFragment.ItemObject itemObject = itemObjectArrayList.get(position%(itemObjectArrayList.size())); final GroupViewHolder groupViewHolder = (GroupViewHolder) holder; if (mOnItemClickListener != null){ groupViewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mOnItemClickListener.onItemClick(groupViewHolder.itemView, position); } }); } try { URL url = new URL(itemObject.group_image); Utils.onLoadImage(url, new Utils.OnLoadImageListener() { @Override public void OnLoadImage(Bitmap bitmap, String bitmapPath) { if (bitmap != null) { BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap); groupViewHolder.group_image.setImageDrawable(bitmapDrawable); } } }); } catch (Exception e) { e.printStackTrace(); } groupViewHolder.group_top.setText(itemObject.group_top); groupViewHolder.group_bottom.setText(itemObject.group_bottom); groupViewHolder.group_right.setText(itemObject.group_right); } @Override public int getItemCount() { return itemObjectArrayList.size(); } public interface OnItemClickListener{ void onItemClick(View view, int position); } private OnItemClickListener mOnItemClickListener; public void setOnItemClickListener(OnItemClickListener mOnItemClickListener){ this.mOnItemClickListener = mOnItemClickListener; } } public class GroupViewHolder extends RecyclerView.ViewHolder { public ImageView group_image; public TextView group_top; public TextView group_bottom; public TextView group_right; public GroupViewHolder(View view) { super(view); group_image = (ImageView) view.findViewById(R.id.group_image); group_top = (TextView) view.findViewById(R.id.group_top); group_bottom = (TextView) view.findViewById(R.id.group_bottom); group_right = (TextView) view.findViewById(R.id.group_right); } } ![图片说明](https://img-ask.csdn.net/upload/201703/16/1489661697_445615.png) ![图片说明](https://img-ask.csdn.net/upload/201703/16/1489661954_171012.png)
android 无法转换为android.support.v4.app.Fragment
程序抛出错误: 不兼容的类型: android.app.Fragment无法转换为android.support.v4.app.Fragment Error:(34, 47) 错误: 不兼容的类型: android.app.Fragment无法转换为android.support.v4.app.Fragment Error:Execution failed for task ':app:compileDebugJavaWithJavac'. > Compilation failed; see the compiler error output for details. ``` package fragment.example.com.fragmenttest; import android.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(this); replaceFragment(new RightFragment()); } @Override public void onClick(View v){ switch (v.getId()){ case R.id.button: replaceFragment(new AnotherRightFragment()); break; default:break; } } private void replaceFragment(Fragment fragment) { FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.replace(R.id.right_layout,fragment); transaction.commit(); } } ``` 报错位置是 transaction.replace(R.id.right_layout,fragment);的fragment
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
本篇文章主要讲解 token、session 等用户认证方案的区别并分析常见误区,以及如何通过前后端的配合实现完善的访问拦截,为下一步权限控制的实现打下基础。
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在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...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
漫话:什么是平衡(AVL)树?这应该是把AVL树讲的最好的文章了
这篇文章通过对话的形式,由浅入深带你读懂 AVL 树,看完让你保证理解 AVL 树的各种操作,如果觉得不错,别吝啬你的赞哦。 1、若它的左子树不为空,则左子树上所有的节点值都小于它的根节点值。 2、若它的右子树不为空,则右子树上所有的节点值均大于它的根节点值。 3、它的左右子树也分别可以充当为二叉查找树。 例如: 例如,我现在想要查找数值为14的节点。由于二叉查找树的特性,我们可...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
开源并不是你认为的那些事
点击上方蓝字 关注我们开源之道导读所以 ————想要理清开源是什么?先要厘清开源不是什么,名正言顺是句中国的古代成语,概念本身的理解非常之重要。大部分生物多样性的起源,...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
《C++ Primer》学习笔记(六):C++模块设计——函数
专栏C++学习笔记 《C++ Primer》学习笔记/习题答案 总目录 https://blog.csdn.net/TeFuirnever/article/details/100700212 —————————————————————————————————————————————————————— 《C++ Primer》习题参考答案:第6章 - C++模块设计——函数 文章目录专栏C+...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车?某胡同口的煎饼摊一年能卖出多少个煎饼?深圳有多少个产品经理?一辆公交车里能装下多少个乒乓球?一个正常成年人有多少根头发?这类估算问题,被称为费米问题,是以科学家费米命名的。为什么面试会问这种问题呢?这类问题能把两类人清楚地区分出来。一类是具有文科思维的人,擅长赞叹和模糊想象,它主要依靠的是人的第一反应和直觉,比如小孩...
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。 背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法 不过,当我看了源代码之后 这程序不到50行 尽管我有多年的Python经验,但我竟然一时也没有看懂 当然啦,原作者也说了,这个代码也是在无聊中诞生的,平时撸码是不写中文变量名的, 中文...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
MySQL数据库总结
一、数据库简介 数据库(Database,DB)是按照数据结构来组织,存储和管理数据的仓库。 典型特征:数据的结构化、数据间的共享、减少数据的冗余度,数据的独立性。 关系型数据库:使用关系模型把数据组织到数据表(table)中。现实世界可以用数据来描述。 主流的关系型数据库产品:Oracle(Oracle)、DB2(IBM)、SQL Server(MS)、MySQL(Oracle)。 数据表:数...
相关热词 c# 二进制截断字符串 c#实现窗体设计器 c#检测是否为微信 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片
立即提问