怎么用baseadapter将sqlite中的数据库适配到一个fragment里的listview?

想用baseadapter添加listview中图片资源,同时通过baseadapter为listview中按钮设置监听事件,有那位好心的大侠帮帮忙!

6个回答

重写一个适配器,把数据库的数据遍历出来 存在一个集合里面,再setAdapter 就行了

qq_29500013
qq_29500013 直接把cursor传过去,组项用arraylist,子项用sqlite cursor动态增删,但现在遇到了复用的问题
3 年多之前 回复
qq_29500013
qq_29500013 用的是expandablelistview
3 年多之前 回复
qq_29500013
qq_29500013 @Override public int getChildrenCount(int groupPosition) { String belong = group_list.get(groupPosition); Cursor c = dbRead.query(ContactDB.CONTACT_TABLE_NAME, null, "belong like ?", new String[] { "%" + belong + "%" }, null, null, null); if (!c.moveToFirst()) { return 0; } else { return c.getCount(); } }
3 年多之前 回复
qq_29500013
qq_29500013 虽然最后不是这样做的,但觉得这是我想要的答案
3 年多之前 回复

你自少要说下数据库数据是什么样的, 你要的adapter需要那些参数

这个和正常的使用方法是一样的啊,建议你封装一下。这样以后再用到就直接拿过来改改就可以了。希望对你有用图片说明

baseadapter 和 平常一样 创建一个类继承自baseadapter 然后做相应的操作 然后获取数据库的数据 再刷新列表数据

  adapter = new SimpleCursorAdapter(this, R.layout.activity_main, cursor, new String[]{}, new int[]{}, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
qq_29500013
qq_29500013 simplecursoradapter好像传不了图片,谢谢啦
3 年多之前 回复

重写一个适配器类继承BaseAdapter,把从数据库里取出来的数据封装一下然后绑定就行了,具体还不明白的话你把你代码发过来

重新封装一个继承BaseAdapter的BaseListAdapter

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
CursorAdapter 还是 BaseAdapter
[size=medium]我在做Android App开发,需要从Server端获取数据,在本地用Sqlite缓存,是不是继承CursorAdapter比继承BaseAdapter要好?如果使用CursorAdapter的话,要用ContentProvider吗?我不需要将数据共享给别的程序,希望程序的架构更加清晰,易于拓展[/size]
AndroidSQLite数据库删除数据后ListView的更新
一款记账的软件,我的数据存储在SQLite中,当我长按item时,弹出对话框并确定删除该item,但是数据库中的删掉了,activity中的listView中该item还在,依理来说是因为我的adapter适配器加载的还是内存中的数据,但是小白还是没有想到好的解决办法,我试了使用广播,但是出现整个页面的item都被删了(数据库的其他还在)。其他的各种办法也都试了还是不行,无奈求助各位看到帖子的大神。讲解的好,我绝对给高分。先谢过各位了。 ![图片说明](https://img-ask.csdn.net/upload/201703/22/1490187215_17835.png) 适配器代码在此: ``` public class CostListAdapter extends BaseAdapter { private List<CostBean> mList; private Context mContext; private LayoutInflater mInflater; public CostListAdapter(Context context, final List<CostBean> list){ mContext = context; mList = list; mInflater = LayoutInflater.from(context); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("com.zsf.accountbook.MY_BROADCAST"); context.registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { mList.clear(); mList = list; notifyDataSetChanged(); } },intentFilter); } @Override public int getCount() { return mList.size(); } @Override public Object getItem(int position) { return mList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null){ holder = new ViewHolder(); convertView = mInflater.inflate(R.layout.list_item,null); holder.mTvCostCategory = (TextView) convertView.findViewById(R.id.tv_category); holder.mTvCostDate = (TextView) convertView.findViewById(R.id.tv_date); holder.mTvCostMoney = (TextView) convertView.findViewById(R.id.tv_money); convertView.setTag(holder); }else { holder = (ViewHolder) convertView.getTag(); } CostBean costBean = mList.get(position);// holder.mTvCostCategory.setText(costBean.costCategory); holder.mTvCostDate.setText(costBean.costDate); holder.mTvCostMoney.setText(costBean.costMoney); return convertView; } private static class ViewHolder{ public TextView mTvCostCategory; public TextView mTvCostDate; public TextView mTvCostMoney; } } ``` ![图片说明](https://img-ask.csdn.net/upload/201703/22/1490187234_665074.png) ![图片说明](https://img-ask.csdn.net/upload/201703/22/1490187852_566687.gif) 漏掉了数据库部分的代码: ![图片说明](https://img-ask.csdn.net/upload/201703/22/1490188335_213349.png)
在 Spinner 中使用 BaseAdapter
这个程序的任务是使用POJO object中的填充spinner。在这之前,我使用普通的字符串的值和BaseAdapter检查过。 activity group中的 activity: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_date_filter); startMonth = (Spinner) findViewById(R.id.startMonth); startMonth.setAdapter(new CustomSpinnerAdapter(getParent(), new ArrayList<String>())); } layout_spinner_row.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/spinnerValue" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="20dp" android:text="Medium Text" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout> adapter class: public class CustomSpinnerAdapter extends BaseAdapter{ private List<String> alertList; private LayoutInflater mInflater; public CustomSpinnerAdapter(Context context, Object results) { alertList = (List<String>) results; //just check if it works. //in real, actual object fits in alertList.add("January"); alertList.add("Feburary"); alertList.add("March"); mInflater = LayoutInflater.from(context); } @Override public int getCount() { return alertList.size(); } @Override public Object getItem(int position) { return alertList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = mInflater.inflate(R.layout.layout_spinner_row, null); holder = new ViewHolder(); holder.spinnerValue = (TextView) convertView.findViewById(R.id.spinnerValue); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.spinnerValue.setText(alertList.get(position)); return convertView; } static class ViewHolder { TextView spinnerValue; //spinner name } } 当我点击spinner时,有下面的错误: E/AndroidRuntime(1686): android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@4135fa38 is not valid; is your activity running? 这是什么问题呢?
Android中,BaseAdapter类中怎么获取屏幕宽度?
本人小白,自定义了个MyAdapter继承BaseAdapter,现在想在MyAdapter中获取屏幕宽度,但是该类不是Activity也不是service,WindowManeger获取不到.getSystemService(Context.WINDOW_SERVICE),Resources的getResources();也没有。
获取BaseAdapter中getView所消耗的时间出错
public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub //文艺式 >> long start = System.nanoTime(); ViewHolder viewHolder; if(convertView == null){ viewHolder = new ViewHolder(); convertView = mInflater.inflate(R.layout.item,null); viewHolder.imageView = (ImageView) convertView.findViewById(R.id.iv_image); viewHolder.title = (TextView) convertView.findViewById(R.id.tv_title); viewHolder.content = (TextView) convertView.findViewById(R.id.tv_content); convertView.setTag(viewHolder); }else{ viewHolder = (ViewHolder) convertView.getTag(); } ItemBean bean = mList.get(position); viewHolder.imageView.setImageResource(bean.ItemImageResid); viewHolder.title.setText(bean.ItemTitle); viewHolder.content.setText(bean.ItemContent); long end = System.nanoTime(); long dValue = end - start; mSumTime += dValue; Log.d("xys",String.valueOf(mSumTime)); return convertView; //文艺式 >> } class ViewHolder{ public ImageView imageView; public TextView title; public TextView content; } } 在BaseAdapter适配器中已经加入成员变量private Long mSumTime;没有long start = System.nanoTime();和long end = System.nanoTime(); long dValue = end - start; mSumTime += dValue; Log.d("xys",String.valueOf(mSumTime)); 系统运行是正常的,加入获取getView方法所消耗的时间
关于BaseAdapter的一个小程序的问题
额,代码比较长................... public class Main extends ListActivity { private static String[] applicationNames = new String[] { "多功能日历", "eoeMarket客户端", "耐玩的重力消砖块", "白社会", "程序终结者" }; private static String[] authors = new String[] { "李宁", "eoemobile", "wawa", "ApkHome", "lucyfa" }; private static int[] resIds = new int[] { R.drawable.calendar, R.drawable.eoemarket, R.drawable.brick, R.drawable.whitesociety, R.drawable.terminater }; private static float[] applicationRating = new float[] { (float) 5.0, (float) 5.0, (float) 3.5, (float) 5.0, (float) 4.0 }; String inflater = Context.LAYOUT_INFLATER_SERVICE; LayoutInflater layoutInflater; private RatingAdapter raAdapter; private class RatingAdapter extends BaseAdapter { private Context context; public RatingAdapter(Context context) { this.context = context; layoutInflater = (LayoutInflater) context .getSystemService(inflater); } @Override public int getCount() { return applicationNames.length; } @Override public Object getItem(int position) { return applicationNames[position]; } @Override public long getItemId(int position) { return position; } public void setRating(int position, float rating) { applicationRating[position] = rating; notifyDataSetChanged(); } @Override public View getView(int position, View convertView, ViewGroup parent) { LinearLayout linearLayout = (LinearLayout) layoutInflater.inflate( R.layout.main, null); ImageView ivLogo = (ImageView) linearLayout .findViewById(R.id.ivLogo); TextView tvApplicationName = ((TextView) linearLayout .findViewById(R.id.tvApplicationName)); TextView tvAuthor = (TextView) linearLayout .findViewById(R.id.tvAuthor); TextView tvRating = (TextView) linearLayout .findViewById(R.id.tvRating); RatingBar ratingBar = (RatingBar) linearLayout .findViewById(R.id.ratingbar); ivLogo.setImageResource(resIds[position]); tvApplicationName.setText(applicationNames[position]); tvAuthor.setText(authors[position]); tvRating.setText(String.valueOf(applicationRating[position])); ratingBar.setRating(applicationRating[position]); return linearLayout; } } @Override protected void onListItemClick(ListView l, View view, final int position, long id) { View myView = getLayoutInflater().inflate(R.layout.rating, null); final RatingBar ratingBar = (RatingBar) myView .findViewById(R.id.ratingbar); ratingBar.setRating(applicationRating[position]); new AlertDialog.Builder(this).setTitle(applicationNames[position]) .setMessage("给应用程序打分").setIcon(resIds[position]) .setView(myView).setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { raAdapter.setRating(position, ratingBar.getRating()); } }).setNegativeButton("取消", null).show(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); List<View> viewList = new ArrayList<View>(); viewList.add(getLayoutInflater().inflate(R.layout.main, null)); raAdapter = new RatingAdapter(this); setListAdapter(raAdapter); } } 有几个问题: 1.setView(myView).setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { raAdapter.setRating(position, ratingBar.getRating()); 这里为什么setPositiveButton第二个参数不是new Dialog.OnClickListener(),还有为什么要用适配器的对象去设置星级评分 2.这里整个的数据列表的数据是在哪设置的,实在不是很懂,希望知道的朋友帮忙解答下,
求指导!BaseAdapter监听的ListView如何设置长点击删除item
希望长点击一个item后会弹出AlertDialog,确定的话就会删除该ListView的item, 监听器是BaseAdapter
自定义Adapter继承自BaseAdapter的方法重写问题
自定义Adapter继承自BaseAdapter时重写的需实现的四个方法方法都是谁来调用的,是在绑定组件跟adapter时由系统负责调用的吗?
安卓中BaseAdapter是如何调用getView()方法的在哪里开始调用
最近学习BaseAdapter很苦恼虽然会用,但不知道它内部实现的原理请问大牛它是如何工作的呢 好人一生平安
android baseadapter的getview方法
我自定义了一个继承viewgourp的流式布局flowlayout,然后在adapter的getview方法中根据数据源的个数for循环添加 textview,添加到单条的flowlayout中,当时还好,划过屏幕外,重新划回来然后重复添加了,请问如何解决?
Java BaseAdapter的问题
Adapter: public class TestAdapter extends BaseAdapter { private Context context; private List<String>list; public TestAdapter(Context context,List<String>list) { // TODO Auto-generated constructor stub context=this.context; list=this.list; } @Override public int getCount() { // TODO Auto-generated method stub 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 view, ViewGroup viewGroup) { // TODO Auto-generated method stub ViewHold viewHold = null ; if(view!=null){ view=LayoutInflater.from(context).inflate(R.layout.main_activity, null); viewHold=new ViewHold(); viewHold.text=(TextView)view.findViewById(R.id.text); view.setTag(viewHold); }else { view.getTag(); } viewHold.text.setText(list.get(position)); return view; } private class ViewHold{ TextView text; } } Activity: public class MainActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); super.setContentView(R.layout.testlist); String a="abc"; List<String>list=new ArrayList<String>(); list.add(a); ListView lv=(ListView)findViewById(R.id.test_list); TestAdapter adapter=new TestAdapter(this,list); lv.setAdapter(adapter); } } 调试发现context 为null mlist为null getcount是0 没有调用getview 是哪里出了问题?!
getView方法中怎么获取MainActivity里的控件????
不是用内部内的形式拿到控件 比如写了一个适配器BaseAdapter里的getView()方法 BaseAdapter不是写在MainActivity里的,而单独拿出来写重新创建java文件 然后,在getView方法中怎么获取MainActivity里的控件?
在 BaseAdapter 上的列表显示错误
我设置的 Adapter 是 BaseAdapter,部分代码: @Override public View getView(int position, View convertView, ViewGroup parent) { ViewTag viewTag; if(convertView == null) { convertView = myInflater.inflate(R.layout.myrow, null); viewTag = new ViewTag((ImageView)convertView.findViewById(R.id.myicon), (TextView)convertView.findViewById(R.id.mytext)); convertView.setTag(viewTag); } else { viewTag = (ViewTag) convertView.getTag(); } viewTag.mytext.setText(MyTitle[position]); if(Icon[position].equals("Yes")) { viewTag.myicon.setVisibility(View.VISIBLE); } else { viewTag.myicon.setVisibility(View.INVISIBLE); } } class ViewTag { ImageView myicon; TextView mytext; public ViewTag(ImageView iv1, TextView tv1) { this.myicon = iv1; this.mytext = tv1; } } 在 Activity 中使用下面的代码调用: private Runnable updateRunnable = new Runnable() { public void run() { MyAdapter.notifyDataSetChanged(); handler.postDelayed(updateRunnable, 1000); } }; 为什么图标显示错误?和图标数组不一样。图标数组总是显示"Yes"。所以列表应该每次只显示一个图标,但是有时候显示好几个图标,如何修改?
关于BaseAdapter的问题
我需要显示图片代码是这样的: @Override public View getView(int position, View convertView, ViewGroup parent) { final int index = position % (myBookData.size()); Log.e("sxy", "index="+index); ImageView iv; if(convertView == null) { iv = new ImageView(parent.getContext()); } else { iv = (ImageView) convertView; } Bitmap logo = null; MyBook myBook = myBookData.get(index); if(myBook != null) { logo = myBook.bitmap; } if(logo == null) { logo = BitmapFactory.decodeResource(getResources(), R.drawable.update_bookdef_bg); } Drawable dIcon = new BitmapDrawable(ImageUtils.addDecoratedIcon(ActSelBook.this, logo)); iv.setImageDrawable(dIcon); iv.setTag(myBook); iv.setLayoutParams(new Gallery.LayoutParams(230, 325)); iv.setScaleType(ImageView.ScaleType.CENTER_INSIDE); return iv; } 可是却总是报错: 01-26 15:50:46.801: I/ActSelBook(11385): myBookData.size()=6 01-26 15:50:46.811: E/InputEventReceiver(11385): Exception dispatching input event. 01-26 15:50:46.811: D/AndroidRuntime(11385): Shutting down VM 01-26 15:50:46.811: W/dalvikvm(11385): threadid=1: thread exiting with uncaught exception (group=0x417fc270) 01-26 15:50:46.811: E/AndroidRuntime(11385): FATAL EXCEPTION: main 01-26 15:50:46.811: E/AndroidRuntime(11385): Process: com.noahedu.ampmlistening, PID: 11385 01-26 15:50:46.811: E/AndroidRuntime(11385): java.lang.NullPointerException 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewGroup.canViewReceivePointerEvents(ViewGroup.java:2140) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewGroup.dispatchHoverEvent(ViewGroup.java:1492) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.View.dispatchGenericMotionEvent(View.java:7777) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java:1824) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewGroup.dispatchHoverEvent(ViewGroup.java:1551) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.View.dispatchGenericMotionEvent(View.java:7777) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java:1824) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewGroup.dispatchHoverEvent(ViewGroup.java:1551) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.View.dispatchGenericMotionEvent(View.java:7777) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java:1824) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewGroup.dispatchHoverEvent(ViewGroup.java:1551) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.View.dispatchGenericMotionEvent(View.java:7777) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java:1824) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewGroup.dispatchHoverEvent(ViewGroup.java:1551) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.View.dispatchGenericMotionEvent(View.java:7777) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java:1824) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewGroup.dispatchHoverEvent(ViewGroup.java:1551) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.View.dispatchGenericMotionEvent(View.java:7777) 01-26 15:50:46.811: E/AndroidRuntime(11385): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchGenericMotionEvent(PhoneWindow.java:2195) 01-26 15:50:46.811: E/AndroidRuntime(11385): at com.android.internal.policy.impl.PhoneWindow.superDispatchGenericMotionEvent(PhoneWindow.java:1533) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.app.Activity.dispatchGenericMotionEvent(Activity.java:2494) 01-26 15:50:46.811: E/AndroidRuntime(11385): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchGenericMotionEvent(PhoneWindow.java:2149) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.View.dispatchPointerEvent(View.java:7893) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4034) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3913) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3479) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3529) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3498) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3605) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3506) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3662) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3479) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3529) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3498) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3506) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3479) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5682) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5662) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5633) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5762) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:5735) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:5781) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.Choreographer.doCallbacks(Choreographer.java:574) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.Choreographer.doFrame(Choreographer.java:542) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.os.Handler.handleCallback(Handler.java:733) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.os.Handler.dispatchMessage(Handler.java:95) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.os.Looper.loop(Looper.java:136) 01-26 15:50:46.811: E/AndroidRuntime(11385): at android.app.A 01-26 15:50:46.821: W/ActivityManager(774): Force finishing activity com.noahedu.ampmlistening/.update.ActSelBook 01-26 15:50:46.831: D/dalvikvm(2604): GC_FOR_ALLOC freed 157K, 9% free 5498K/6008K, paused 22ms, total 22ms 01-26 15:50:46.831: I/dalvikvm-heap(2604): Grow heap (frag case) to 6.200MB for 800272-byte allocation 01-26 15:50:46.841: D/dalvikvm(2604): GC_FOR_ALLOC freed 0K, 8% free 6280K/6792K, paused 9ms, total 9ms 请大侠帮帮忙,指教下下。
Android 适配器的使用配置?
关于安卓适配器有很多例子我知道,可是最近开发登记程序的时候就发现了一个或许对于大神来说算不了什么问题,但是这个问题对于刚刚接触Android开发不久的人来说却很重要,因为这个学习不好的话就意味着很多功能都做不了,下面就说正题。 适配器的的编写,优化,以及如何将适配器所关联的每个条目信息都保存在配置文件Properties中,还有怎么提取配置文件资料等等方法,希望有人能帮忙解释下,最好是有事例源代码就更好了,我代表很多的初学者朋友先谢谢回答者了。
安卓listView 和BaseAdapter的问题
为什么我只点击了前面几项,往下滑动,checkbox下面却自动点击了,而且TextView也只有部分数据显示到当前屏幕,往下滑动时,却重复之前的数据? ![图片说明](https://img-ask.csdn.net/upload/201610/30/1477828432_956625.png) public class MainActivity extends AppCompatActivity { ListView listView; List<Student> studentList = new ArrayList<Student>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.listv); listView.setAdapter(new MyAdapter()); Student student; for (int i=0;i<30;i++){ student = new Student("Tom"+i,10+i); studentList.add(student); } } class MyAdapter extends BaseAdapter{ @Override public int getCount() { return studentList.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { final Student student = studentList.get(position); View view = null; if (convertView ==null){ view = View.inflate(MainActivity.this,R.layout.checkbox_layout,null); }else{ view = convertView; } final CheckBox checkBox1 = (CheckBox) view.findViewById(R.id.cb1); final TextView textView = (TextView) view.findViewById(R.id.textinfo); //textView.setText(student.toString()); checkBox1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked){ textView.setText(student.toString()); } } }); return view; } } }
求助大神!android的baseadapter老是报空指针
package com.example.kaoqin; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang.ObjectUtils.Null; import android.R.integer; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.EditText; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; import android.widget.Toast; public class User_TiaoZhuan_Activity2 extends Activity { private ListView list; private SimpleAdapter SAda; public String huoquuser; private String[] From = new String[]{"yonghu","kaishi","jieshu","zong","yuanyin","zhuangtai","id"}; public ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String,Object>>(); private ArrayList<ItemBean> datalist = new ArrayList<ItemBean>(); public String NAME; public String START; public String END; public String SUM; public String REASON; public String STATE; public String ID; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.user_tiaozhuan_activity2); list = (ListView)findViewById(R.id.listViewuser); Intent intent = getIntent();//将检索出来的intent赋值给一个Intent类型的变量intent,getIntent()方法用于直接返回Intent实例 Bundle bundle = intent.getExtras();///获取前面的那个activity传过来的数据 huoquuser = bundle.getString("username"); HttpClien httpClien = new HttpClien(); data = httpClien.HTTPLeaveListView(huoquuser, "2"); //SAda = new SimpleAdapter(User_TiaoZhuan_Activity2.this, getdata(data),R.layout.user_tiaozhuan_buju2, From,new int[]{R.id.tiaozhuan_user2, //R.id.tiaozhuan_start2,R.id.tiaozhuan_end2,R.id.tiaozhuan_sum2,R.id.tiaozhuan_reason2,R.id.tiaozhuan_shenhe2,R.id.tiaozhuan_id2}); //list.setAdapter(SAda); Edit nihao = new Edit(this, getdata(data));//把数据源放入baseadapter list.setAdapter(nihao); } public ArrayList<ItemBean> getdata(ArrayList<HashMap<String,Object>> shuju) { for (int i = 0; i < data.size(); i++) { NAME = String.valueOf(shuju.get(i).get("name")); START = String.valueOf(shuju.get(i).get("start")); END = String.valueOf(shuju.get(i).get("end")); SUM = String.valueOf(shuju.get(i).get("sum")); REASON = String.valueOf(shuju.get(i).get("reason")); STATE = String.valueOf(shuju.get(i).get("state")); ID = String.valueOf(shuju.get(i).get("id")); ItemBean it = new ItemBean(NAME, START, END, SUM, REASON, STATE,ID); datalist.add(it); } return datalist; } } class Edit extends BaseAdapter { private Context context; private ArrayList<ItemBean> list; private LayoutInflater miInflater; public Edit(Context context,ArrayList<ItemBean> list) { LayoutInflater miInflater; miInflater = LayoutInflater.from(context); this.context = context; this.list = list; //根据context上下文加载布局,这里的是User_TiaoZhuan_Activity本身,即this } @Override public int getCount() { // TODO Auto-generated method stub //在此适配器中所代表的数据集中的条目数 return list.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub //获取数据集中与指定索引对应的数据项 return list.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub //获取在列表中与指定索引对应的行id return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder kongjian = null; if(convertView == null) { convertView = miInflater.inflate(R.layout.user_tiaozhuan_buju2, null); kongjian = new ViewHolder(); kongjian.TV_sure = (TextView)convertView.findViewById(R.id.yunxu); kongjian.TV_cancel = (TextView)convertView.findViewById(R.id.bohui); kongjian.TVuser = (TextView)convertView.findViewById(R.id.tiaozhuan_user2); kongjian.TVstart = (TextView)convertView.findViewById(R.id.tiaozhuan_start2); kongjian.TVend = (TextView)convertView.findViewById(R.id.tiaozhuan_end2); kongjian.TVsum = (TextView)convertView.findViewById(R.id.tiaozhuan_sum2); kongjian.TVreason = (TextView)convertView.findViewById(R.id.tiaozhuan_reason2); kongjian.TVstate = (TextView)convertView.findViewById(R.id.tiaozhuan_shenhe2); kongjian.TVid = (TextView)convertView.findViewById(R.id.tiaozhuan_id2); //将设置好的布局保存到缓存中,并将其设置在Tag里,以便后面方便取出Tag convertView.setTag(kongjian); }else { kongjian = (ViewHolder)convertView.getTag(); } kongjian.TV_sure.setText("允许请假"); kongjian.TV_cancel.setText("驳回请假"); ItemBean bean = list.get(position); kongjian.TVuser.setText(bean.Itemuser);; kongjian.TVstart.setText(bean.Itemstarttime); kongjian.TVend.setText(bean.Itemendtime); kongjian.TVsum.setText(bean.Itemsumtime); kongjian.TVreason.setText(bean.Itemreason); kongjian.TVstate.setText(bean.Itemstate); kongjian.TVid.setText(bean.ItemId); kongjian.TV_sure.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub System.out.println("通过"); } }); kongjian.TV_cancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub System.out.println("不通过"); } }); return convertView; } } class ViewHolder { TextView TV_sure; TextView TV_cancel; TextView TVuser; TextView TVstart; TextView TVend; TextView TVsum; TextView TVreason; TextView TVid; TextView TVstate; } class ItemBean { public String Itemuser; public String Itemstarttime; public String Itemendtime; public String Itemsumtime; public String Itemreason; public String Itemstate; public String ItemId; public ItemBean(String a,String b,String c, String d,String e,String f,String g) { Itemuser = a; Itemstarttime = b; Itemendtime = c; Itemsumtime = d; Itemreason = e; Itemstate = f; ItemId = g; } }![图片说明](https://img-ask.csdn.net/upload/201611/10/1478771417_684227.png) 错误显示的是121行存在空指针,inflate里的布局文件是存在的啊,R类里也有 地址啊(R.layout.user_tiaozhuan_buju2, null);
关于安卓SQLite的问题
大神,小弟学习安卓数据库时遇到了一些问题,求大神帮助! ![图片说明](https://img-ask.csdn.net/upload/201604/29/1461893294_409733.jpg) 我是想要在一个Fragment页面里动态加载ListView,写了一个自定义的Adapter 在 onActivityCreated里面写了 adapter=new FragmentRecordAdapter(this,start, end); listView_data.setAdapter(adapter); 在Adapter里面写了 public class FragmentRecordAdapter extends BaseAdapter { AddDAO2 adao; FragmentRecord f; Cursor cursor; public FragmentRecordAdapter(FragmentRecord fragmentRecord, String start,String end) { // TODO Auto-generated constructor stub this.f=fragmentRecord; adao = new AddDAO2(f); cursor = adao.queryAllDetail(start, end); } @Override public int getCount() { return cursor.getCount(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @SuppressLint("InflateParams") @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View view = null; if (convertView != null) { view = convertView;//复用了回收的view 只需要直接作内容填充的修改就好了 } else { view = LayoutInflater.from(null).inflate(R.layout.f_record_detail_lv_item_2, null); //没有供复用的view 按一般的做法新建view TextView tv01 = (TextView) view.findViewById(R.id.tv01); TextView tv02 = (TextView) view.findViewById(R.id.tv02); TextView tv03 = (TextView) view.findViewById(R.id.tv03); TextView tv04 = (TextView) view.findViewById(R.id.tv04); cursor.moveToPosition(position); tv01.setText(cursor.getString(cursor.getColumnIndex(ActionConstants.record.SportType))); tv02.setText(cursor.getString(cursor.getColumnIndex(ActionConstants.record.FitnessPart))); tv03.setText(cursor.getString(cursor.getColumnIndex(ActionConstants.record.FitnessContent))); tv04.setText(cursor.getString(cursor.getColumnIndex(ActionConstants.record.Time))); } return view; } } 在AddDAO2里面: public class AddDAO2 { SQLiteDatabase db; public AddDAO2(FragmentRecord f) { // TODO Auto-generated constructor stub db = new ActionDataHelper(null, f).getWritableDatabase(); } 想不明白该怎么解决,求大神帮助!谢谢
extend BaseAdapter,什么时候view是空值
public class CustomAdapter extends BaseAdapter extend BaseAdapter代码: public View getView(int index, View view, final ViewGroup parent) { if (view == null) { LayoutInflater inflater = LayoutInflater.from(parent.getContext()); view = inflater.inflate(R.layout.single_list_item, parent, false); } } TextView textView = (TextView) view.findViewById(R.id.tv_string_data); textView.setText(dataModel.getName()); 我的问题是什么时候`view == null`? 为什么需要代码:`if (view == null) {}`
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 更...
相关热词 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片 c# 图片颜色调整 最快 c#多张图片上传 c#密封类与密封方法
立即提问