Android 使用ImageView控件时候出错

08-10 10:08:42.701 21576-21612/com.example.uiwidgettest E/libEGL: load_driver(/system/lib/egl/libGLES_emulation.so): dlopen failed: library "/system/lib/egl/libGLES_emulation.so" not found 这是什么问题啊 新手求解释~

3个回答

缺少 libGLES_emulation.so 文件

或者是地方没找对 /system/lib/egl/libGLES_emulation.so 这个路径肯定是不对的,,windows至少得有个盘符。

虚拟机上的话,,这个路径合适
八成是虚拟的问题,,缺少 这个文件,,,,换个虚拟机试试

weixin_36816337
为了寻找2B 从7.0版本的换到6.0的之后就没有出现错误了, 这是版本的问题吗? 还有就是 /system/lib/egl/这个是哪里的目录??
2 年多之前 回复

这个标题,,怎么可能是imageView导致的了??你的这个是so文件缺失,要不就是你现在的so没有你新加的功能版本太旧了,要不就是没找到

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android两个控件布局,占满父亲
我的mainactivity的布局文件,默认的是一个相对布局。我里面就两个控件,一个Button和一个ImageView。我想让Button紧贴着父亲的上面,ImageView占满剩下的区域。Button的高度就普通的就行。我贴上我的代码,老出错。一运行就崩掉。 ``` <Button android:id="@+id/mybtn" android:layout_alignParentTop="true" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="点我"/> <ImageView android:id="@+id/image_view" android:layout_below="@id/mybtn" android:layout_marginBottom="0dp" android:scaleType="centerInside" /> ```
android自定义圆形ImageView,在使用时报错,提示找不到这个类
想要自定义一个圆形的ImageView用于头像,但是写完自定义的类后,在使用时预览报错:![图片说明](https://img-ask.csdn.net/upload/201706/15/1497523110_655276.png)。这里是引用的地方:![图片说明](https://img-ask.csdn.net/upload/201706/15/1497523735_330433.png)![图片说明](https://img-ask.csdn.net/upload/201706/15/1497523747_678460.png),引用时我是用提示来补全的,应该路径不会出错,但是在预览界面就是报错,提示找不到:![图片说明](https://img-ask.csdn.net/upload/201706/15/1497523845_373612.png)NOTE: This project contains Java compilation errors, which can cause rendering failures for custom views. Fix compilation problems first. The following classes could not be found: - com.cmmr.ccappmobilephone.activity.util.CircularImage (Fix Build Path, Edit XML, Create Class)。请问这个是什么原因导致的,该怎么解决啊?谢谢啦。
为什么我拖拽后的控件回不去!!帮忙看下代码是什么问题!!谢谢
这是JAVA代码 ``` package com.example.test; import com.example.test1.R; import android.annotation.SuppressLint; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Display; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ImageView; public class Main extends Activity implements OnTouchListener{ ImageView[] iv = new ImageView[6]; int[] index = { R.id.imagevb1, R.id.imagevb2, R.id.imagevb3, R.id.imagevb4, R.id.imagevb5 ,R.id.imagevb6}; int screenWidth, screenHeight;//界面的大小 int lastX, lastY; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); for (int i = 0; i < index.length; i++) { iv[i] = (ImageView) findViewById(index[i]); iv[i].setOnTouchListener(this); } Display dis = this.getWindowManager().getDefaultDisplay(); screenWidth = dis.getWidth(); screenHeight = dis.getHeight(); } @Override public boolean onTouch(View v, MotionEvent event) { switch (v.getId()) { case R.id.imagevb1: get(iv[0], event); break; case R.id.imagevb2: get(iv[1], event); break; case R.id.imagevb3: get(iv[2], event); break; case R.id.imagevb4: get(iv[3], event); break; case R.id.imagevb5: get(iv[4], event); break; case R.id.imagevb6: get(iv[5], event); break; } return false; } int a1, a2, a3, a4; public void get(ImageView v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN:// 表示用户开始触摸 lastX = (int) event.getRawX(); lastY = (int) event.getRawY(); a1 = v.getLeft(); a2 = v.getTop(); a3 = v.getBottom(); a4 = v.getRight(); break; case MotionEvent.ACTION_MOVE:// 表示用户在移动(手指或者其他) int dx = (int) event.getRawX() - lastX; int dy = (int) event.getRawY() - lastY; int left = v.getLeft() + dx; int top = v.getTop() + dy; int right = v.getRight() + dx; int bottom = v.getBottom() + dy; if (left < 0) { left = 0; right = left + v.getWidth(); } if (right > screenWidth) { right = screenWidth; left = right - v.getWidth(); } if (top < 0) { top = 0; bottom = top + v.getHeight(); } if (bottom > screenHeight) { bottom = screenHeight; top = bottom - v.getHeight(); } v.layout(left, top, right, bottom); lastX = (int) event.getRawX(); lastY = (int) event.getRawY(); break; case MotionEvent.ACTION_UP:// 表示用户抬起了手指 v.layout(a1, a2, a3, a4); break; } } } **这是Xml布局文件** ``` ``` <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/FrameLayout1" android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/imagevb1" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_margin="12dp" android:layout_marginLeft="146dp" android:layout_marginTop="30dp" android:clickable="true" android:src="@drawable/block0" /> <ImageView android:id="@+id/imagevb2" android:layout_width="80dp" android:layout_height="40dp" android:layout_alignParentLeft="true" android:layout_below="@+id/imagevb1" android:layout_margin="12dp" android:layout_marginLeft="146dp" android:layout_marginTop="30dp" android:clickable="true" android:src="@drawable/block1" /> <ImageView android:id="@+id/imagevb3" android:layout_width="40dp" android:layout_height="80dp" android:layout_alignParentLeft="true" android:layout_below="@+id/imagevb2" android:layout_margin="12dp" android:layout_marginLeft="146dp" android:layout_marginTop="30dp" android:clickable="true" android:src="@drawable/block2" /> <ImageView android:id="@+id/imagevb4" android:layout_width="80dp" android:layout_height="80dp" android:layout_alignParentLeft="true" android:layout_below="@+id/imagevb3" android:layout_margin="12dp" android:layout_marginLeft="146dp" android:layout_marginTop="30dp" android:clickable="true" android:src="@drawable/block3" /> <ImageView android:id="@+id/imagevb5" android:layout_width="120dp" android:layout_height="120dp" android:layout_alignParentLeft="true" android:layout_below="@+id/imagevb4" android:layout_margin="12dp" android:layout_marginLeft="146dp" android:layout_marginTop="30dp" android:clickable="true" android:src="@drawable/block4" /> <ImageView android:id="@+id/imagevb6" android:layout_width="80dp" android:layout_height="120dp" android:layout_alignParentLeft="true" android:layout_below="@+id/imagevb5" android:layout_margin="12dp" android:layout_marginLeft="146dp" android:layout_marginTop="30dp" android:clickable="true" android:src="@drawable/block5" /> </RelativeLayout> </FrameLayout> ``` ``` 问题:我要的效果是我手一松开,我拖拽的控件就回到原来的位置,但是现在只有第一个可以做到松开就回去。其他控件可以拖动但是手一松开就消失了!!没错,消失了!!求大家帮忙看看是那里出错了!!!
android调用系统相机拍照报错,onActivityResult中data为null
这是书上的一个练习,对着敲的,运行时拍照后点完成就出错,什么原因啊?怎么解决 ![图片说明](https://img-ask.csdn.net/upload/201607/20/1469014779_796890.png) import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; public class MainActivity extends Activity { public static final int TAKE_PHOTO=1; public static final int CROP_PHOTO=2; private Button takePhoto; private ImageView picture; private Uri imageUri; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取控件实例 takePhoto=(Button) findViewById(R.id.take_photo); picture=(ImageView) findViewById(R.id.picture); takePhoto.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //创建File对象,拥有储存拍的照片 File outputImage=new File(Environment.getExternalStorageDirectory(),"outputImag.jpg"); //getExternalStorageDirectory()获取手机sd卡的根目录 try{ if(outputImage.exists()){ outputImage.delete(); } outputImage.createNewFile(); }catch(IOException e){ e.printStackTrace(); } //将File对象转换成Uri对象 imageUri=Uri.fromFile(outputImage); Intent intent=new Intent("android.media.action.IMAGE_CAPTURE"); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); //指定保存路径 startActivityForResult(intent,TAKE_PHOTO);//启动相机程序 拍完照后返回到onAcitvityResult() } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data ){ Log.d("MainActivity", "ok"); switch(requestCode){ case TAKE_PHOTO: if (resultCode==RESULT_OK){ //执行裁剪照片的逻辑 Intent intent=new Intent("come.android.camera.action.CROP"); intent.setDataAndType(imageUri, "image/*"); intent.putExtra("crop", true); intent.putExtra("scale", true); intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri);//输出文件 startActivityForResult(intent, CROP_PHOTO); // 启动裁剪程序 } break; case CROP_PHOTO: if(resultCode==RESULT_OK){ try { // 用BitmapFactory的decodeStream()方法将output_image.jpg这张照片解析成Bitmap对象 Bitmap bitmap= BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri)); picture.setImageBitmap(bitmap);//显示裁剪的照片 } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } break; default: break; } } } ``` ```
addView同一个对象两次会出错
``` //首页按钮 ImageView home=new ImageView(context); home.setImageResource(R.drawable.icon_03); home.setLayoutParams(iconparams); home.setPadding(10, 10, 10, 10); addView(home); //分隔符 ImageView seprator = new ImageView(context); seprator.setImageResource(R.drawable.seprator_03); seprator.setLayoutParams(sepratorparams); addView(seprator); //2 ImageView icon2=new ImageView(context); icon2.setImageResource(R.drawable.icon_05); icon2.setLayoutParams(iconparams); icon2.setPadding(10, 10, 10, 10); addView(icon2); addView(seprator); ``` 上边是我在android项目中写的一个用户控件的部分代码,调试后发现再第二次addView(seprator);时候会报错,然后我试了一下其他的,结果是只要是第二次addView的参数对象之前已经addView过一次,就会报错,请问是因为什么?有什么解决办法?
关于RecyclerView修改item布局中的控件问题
我想改变其中item中布局中最右边的图片 下面这样是可以修改,但是如果position大于屏幕以外的话会出错,但如果先全部加载好的话不会有问题,有什么方法可以预先加载好Recyclerview? View view = layoutManager.findViewByPosition(2); LinearLayout layout = (LinearLayout)view; ImageView imageView=(ImageView)layout.findViewById(R.id.reminder); imageView.setImageResource(R.mipmap.waring); adapter.notifyItemChanged(2); 弹出问题为:Attempt to invoke virtual method 'android.view.View android.widget.LinearLayout.findViewById(int)' on a null object ![图片说明](https://img-ask.csdn.net/upload/201706/15/1497526956_83137.jpg)reference
ListView 的问题,按照书上例子,仿写了一个,结果出问题了,请大家看看到底哪里出错了啊
先是有两个布局文件,一个是关于ListView控件的,另一个是我自己定的线性布局,实现的是一个字符旁边先是一个图样。 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.IWIN.listview.MainActivity" > <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> <?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" > <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="10dp"/> </LinearLayout> 然后定义了一个了类,定义字符和图样 package com.IWIN.listview; public class Fruit { private String name; private int imageId; public Fruit(String name,int imageId){ this.name=name; this.imageId=imageId; } public int getImageId(){ return imageId; } public String getName(){ return name; } } 紧接着又定义了一个适配器 package com.IWIN.listview; import java.util.List; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; import com.IWIN.listview.Fruit; import com.IWIN.listview.R; public class FruitAdapter extends ArrayAdapter<Fruit>{ private ImageView image; private TextView textView; int resourceId; public FruitAdapter(Context context, int textViewResourceId, List<Fruit> objects) { super(context, textViewResourceId, objects); resourceId=textViewResourceId; } public View getView(int position,View convertView,ViewGroup parent){ Fruit fruit=getItem(position);//找到在屏幕内的fruit类 View view=LayoutInflater.from(getContext()).inflate(resourceId,null);//cetContentView是Activity里面的类 image=(ImageView)view.findViewById(R.id.image); //LayoutInflater.from().inflate(常量ID,ViewGroup)可以在非Activity里面使用。 textView=(TextView)view.findViewById(R.id.textView); image.setImageResource(fruit.getImageId()); textView.setText(fruit.getName()); return view; } } 再然后就是ManiActivity private ListView listView; protected void onCreate(Bundle savedInstanceState) { nitFruit(); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FruitAdapter adapter=new FruitAdapter(MainActivity.this,android.R.layout.simple_list_item_1,list); listView=(ListView)findViewById(R.id.listView); listView.setAdapter(adapter); } public void nitFruit(){ Fruit read=new Fruit("read",R.drawable.ic_launcher); list.add(read); Fruit write=new Fruit("write",R.drawable.ic_launcher); list.add(write); Fruit white=new Fruit("white",R.drawable.ic_launcher); list.add(white); Fruit blue=new Fruit("blue",R.drawable.ic_launcher); list.add(blue); Fruit sea=new Fruit("sea",R.drawable.ic_launcher); list.add(sea); Fruit like=new Fruit("like",R.drawable.ic_launcher); list.add(like); Fruit love=new Fruit("love",R.drawable.ic_launcher); list.add(love); Fruit student=new Fruit("student",R.drawable.ic_launcher); list.add(student); Fruit teacher=new Fruit("teacher",R.drawable.ic_launcher); list.add(teacher); Fruit classmates=new Fruit("classmates",R.drawable.ic_launcher); list.add(classmates); Fruit classroom=new Fruit("classroom",R.drawable.ic_launcher); list.add(classroom); Fruit hello=new Fruit("hello",R.drawable.ic_launcher); list.add(hello); } } 编译后LogCat显示的错误,我也没看出问题 09-11 02:45:16.776: W/dalvikvm(844): threadid=1: thread exiting with uncaught exception (group=0x409bf1f8) 09-11 02:45:16.796: E/AndroidRuntime(844): FATAL EXCEPTION: main 09-11 02:45:16.796: E/AndroidRuntime(844): java.lang.NullPointerException 09-11 02:45:16.796: E/AndroidRuntime(844): at com.IWIN.listview.FruitAdapter.getView(FruitAdapter.java:34) 09-11 02:45:16.796: E/AndroidRuntime(844): at android.widget.AbsListView.obtainView(AbsListView.java:2033) 09-11 02:45:16.796: E/AndroidRuntime(844): at android.widget.ListView.makeAndAddView(ListView.java:1772) 09-11 02:45:16.796: E/AndroidRuntime(844): at android.widget.ListView.fillDown(ListView.java:672) 09-11 02:45:16.796: E/AndroidRuntime(844): at android.widget.ListView.fillFromTop(ListView.java:732) 09-11 02:45:16.796: E/AndroidRuntime(844): at android.widget.ListView.layoutChildren(ListView.java:1625) 09-11 02:45:16.796: E/AndroidRuntime(844): at android.widget.AbsListView.onLayout(AbsListView.java:1863) 09-11 02:45:16.796: E/AndroidRuntime(844): at android.view.View.layout(View.java:11278) 09-11 02:45:16.796: E/AndroidRuntime(844): at android.view.ViewGroup.layout(ViewGroup.java:4224) 09-11 02:45:16.796: E/AndroidRuntime(844): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1628) 。。。。。。
expandablelistview和checkbox结合使用,复用问题,头疼好几天,大神帮帮忙啊
了viewholder复用了,当子项滑出范围,选中的checkbox变为未选中,不过选中的删除时删除是正确的,只是这样重复选择(不知道怎么说),体验不好,头疼好几天了 expandablelistviewadapter代码如下: 关键代码: ``` /* * 解决复用问题的关键代码,那里好像出错了。导致自动让滑出屏幕的checkbox不选,这里 */ if (checkposition!=null) { itemHolder.cb.setChecked(checkposition.contains(itemHolder.cb.getText().toString())?true:false); } else{ itemHolder.cb.setChecked(false); } itemHolder.cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { String i = itemHolder.cb.getText().toString(); @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { if (!checkposition.contains(i)) { idlists.add(i); checkposition.add(i); } Fragment1.tv.setText("您已选中"+idlists.size()+"个联系人"); } else{ if (checkposition.contains(i)) { idlists.remove(i); checkposition.remove(i); } Fragment1.tv.setText("您已选中"+idlists.size()+"个联系人"); } } }); ``` 适配器完整代码: ``` package com.daisy.work.adapter; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.net.Uri; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; import com.daisy.work.R; import com.daisy.work.atys.fragments.Fragment1; import com.daisy.work.db.ContactDB; public class MyExpandableListViewAdapter extends BaseExpandableListAdapter { private Context context; private Cursor cursor; private ArrayList<String> group_list; private ArrayList<List<Integer>> gr_list2; private ContactDB ctDB; private SQLiteDatabase dbRead; private ItemHolder itemHolder; public ArrayList<String> idlists; public List<String> checkposition; public MyExpandableListViewAdapter(Context context, Cursor cursor) { this.context = context; this.cursor = cursor;//cursor用来获取填充childview的数据 ctDB = new ContactDB(context); dbRead = ctDB.getReadableDatabase(); idlists = new ArrayList<String>();//用来记录checkboxbox的值,和数据库的name一列的值相同,便于删除 checkposition = new ArrayList<String>();//用来解决复用滑动错乱问题 group_list = new ArrayList<String>();//填充组 group_list.add("默认"); group_list.add("亲人"); group_list.add("同事"); group_list.add("同学"); group_list.add("客户"); List<Integer> gr_list = new ArrayList<Integer>(); gr_list.add(R.drawable.tree_ec); gr_list.add(R.drawable.tree_ec); gr_list.add(R.drawable.tree_ec); gr_list.add(R.drawable.tree_ec); gr_list.add(R.drawable.tree_ec); gr_list2 = new ArrayList<List<Integer>>();//{{1,2,3,4,5},{1,2,3,4,5}...} gr_list2.add(gr_list); gr_list2.add(gr_list); gr_list2.add(gr_list); gr_list2.add(gr_list); gr_list2.add(gr_list); } @Override public int getGroupCount() { return group_list.size(); } @Override public int getChildrenCount(int groupPosition) { String belong = group_list.get(groupPosition);//将特定的数据填充到分组中,用belong标识。 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(); } } @Override public Object getGroup(int groupPosition) { return group_list.get(groupPosition); } //多考虑一下 @Override public Object getChild(int groupPosition, int childPosition) { return getCombinedChildId(getGroupId(groupPosition),childPosition);//这个没搞太明白,填什么都不会出错 } @Override public long getGroupId(int groupPosition) { return groupPosition; } @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public boolean hasStableIds() { return true; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { GroupHolder groupHolder = null; if (convertView == null) { convertView = LayoutInflater.from(context).inflate( R.layout.expendlist_group, null); groupHolder = new GroupHolder(); groupHolder.txt = (TextView) convertView.findViewById(R.id.txt); groupHolder.txt2 = (TextView) convertView.findViewById(R.id.txt2); groupHolder.img = (ImageView) convertView.findViewById(R.id.img); convertView.setTag(groupHolder); } else { groupHolder = (GroupHolder) convertView.getTag(); } if (!isExpanded) { groupHolder.img.setBackgroundResource(R.drawable.tree_ec); } else { groupHolder.img.setBackgroundResource(R.drawable.tree_ex); } String belong = group_list.get(groupPosition); cursor = dbRead.query(ContactDB.CONTACT_TABLE_NAME, null, "belong like ?", new String[] { "%" + belong + "%" }, null, null, null); int nm = cursor.getCount();//获取特定组中子项的数目。 groupHolder.txt.setText(group_list.get(groupPosition)); groupHolder.txt2.setText(nm + "");//显示组中子项的数目。 return convertView; } @Override public View getChildView(final int groupPosition,final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { itemHolder = null; if (convertView == null) { convertView = LayoutInflater.from(context).inflate( R.layout.expendlist_item,null); itemHolder = new ItemHolder(); itemHolder.ct_name = (TextView) convertView .findViewById(R.id.ct_name); itemHolder.ct_qq = (TextView) convertView.findViewById(R.id.ct_qq); itemHolder.iv = (ImageView) convertView.findViewById(R.id.iv); itemHolder.dial = (ImageButton) convertView.findViewById(R.id.dial); itemHolder.cb = (CheckBox) convertView.findViewById(R.id.cb); itemHolder.cb.setTag(itemHolder.cb.getText().toString());//child_item布局里的checkbox控件 convertView.setTag(itemHolder); } else { itemHolder = (ItemHolder) convertView.getTag(); } String belong = group_list.get(groupPosition); cursor = dbRead.query(ContactDB.CONTACT_TABLE_NAME, null, "belong like ?", new String[] { "%" + belong + "%" }, null, null, null); if (!cursor.moveToFirst()) { return null; } else { cursor.moveToPosition(childPosition); if (Fragment1.xs_bs.isShown()) {//按多选时将checkbox展现出啦,取消则隐藏xs_bs在adapter中无法获取,把它设为了public static itemHolder.cb.setChecked(false); itemHolder.cb.setVisibility(CheckBox.GONE); } else { itemHolder.cb.setVisibility(CheckBox.VISIBLE); itemHolder.dial.setOnClickListener(null); } if(Fragment1.qx.isPressed()){ //取消则隐藏 itemHolder.cb.setChecked(false); } //显示子项中的数据 itemHolder.ct_name.setText(cursor.getString(cursor .getColumnIndex("name"))); itemHolder.cb.setText(cursor.getString(cursor .getColumnIndex("name"))); itemHolder.ct_qq.setText(cursor.getString(cursor .getColumnIndex("qq"))); itemHolder.iv.setBackgroundResource(R.drawable.ic_ct); //按钮,由于其特殊性(在expandablelistview子项中的控件,在adapter中设置监听) itemHolder.dial.setOnClickListener(new View.OnClickListener() { String phone = cursor.getString(cursor.getColumnIndex("phone")); @Override public void onClick(View v) { context.startActivity(new Intent(Intent.ACTION_DIAL, Uri .parse("tel:" +phone))); } }); /* * 解决复用问题的关键代码,那里好像出错了。导致自动让滑出屏幕的checkbox不选,这里 */ if (checkposition!=null) { itemHolder.cb.setChecked(checkposition.contains(itemHolder.cb.getText().toString())?true:false); } else{ itemHolder.cb.setChecked(false); } itemHolder.cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { String i = itemHolder.cb.getText().toString(); @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { if (!checkposition.contains(i)) { idlists.add(i); checkposition.add(i); } Fragment1.tv.setText("您已选中"+idlists.size()+"个联系人"); } else{ if (checkposition.contains(i)) { idlists.remove(i); checkposition.remove(i); } Fragment1.tv.setText("您已选中"+idlists.size()+"个联系人"); } } }); return convertView; } } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } class GroupHolder { public TextView txt; public TextView txt2; public ImageView img; } class ItemHolder { public ImageView iv; public TextView ct_name; public TextView ct_qq; public ImageButton dial; public CheckBox cb; } } ``` ![图片说明](https://img-ask.csdn.net/upload/201605/16/1463356167_782724.png)
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
毕业设计 微信小程序 音乐播放器
大学室友根据网易云的API自己制作的微信小程序,获得校级优秀毕业设计(如果你是大佬请绕行),下面简单介绍一下: 根据多次的使用不同的音乐APP发现,网易云音乐的页面设计最适合作为本微信小程序的页面基础模板。由于本作品是微信小程序,就需要剔除APP中的各种冗余的功能,页面设计也需要尽可能的简单直接,内容也要充实。然后根据以上几点,对应用的功能模块进行大量的分析与重构...
想查看微信好友撤回的消息?Python帮你搞定
要说微信最让人恶心的发明,消息撤回绝对能上榜。 比如你现在正和女朋友用微信聊着天,或者跟自己喜欢的女孩子聊着天,一个不留神,你没注意到对方发的消息就被她及时撤回了,这时你很好奇,好奇她到底发了什么?于是你打算问问她发了什么,结果她回一句"没什么"。这一回复,让你的好奇心更加强烈了,顿时就感觉消息撤回这一功能就是用来折磨人的。 那么有没有什么办法能够知道你心爱的她(他)到底撤回了什么呢?不要着急,P...
程序员必备的8个学习工具
取其精华,去其糟粕
2019年12月中国编程语言排行榜
2019年12月4日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.60% 2 c/c++ 16.58% 3 c# 12.59% 4 javascript 12.21% 5 python 7.96% 6 go 7.19% 7 php ...
拼不过 GO?阿里如何重塑云上的 Java
阿里妹导读:Java 诞生于20年前,拥有大量优秀的企业级框架,践行 OOP 理念,更多体现的是严谨以及在长时间运行条件下的稳定性和高性能。反观如今,在要求快速迭代交付的云场景下,语言的简单性似乎成了首要的要求,而传统的 Java 语言显得有一些过于重量了。今天,阿里 JVM 团队技术专家郁磊(花名:梁希)分享 JVM 团队是如何面对和处理集团巨大的业务规模和复杂的业务场景的。 音乐无国...
Java知识体系最强总结(2020版)
更新于2020-01-05 18:08:00 本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。 整理的Ja
一个“/”键,封锁了整个互联网
正所谓无BUG不生活,从你含辛茹苦地码着第一行代码开始,bug就如影随形。 其实,bug 被自己或者是测试人员发现都是好事;但如果是被用户发现,又或者导致了客户和公司的巨额损失……这些未知后果,就如同悬在头顶的一把利刃,让人脊背发凉…… 但一个小小的bug,可能带给你惊吓,也可能带来惊喜。接下来,我们就来看看 bug 都能带来哪些意想不到的影响呢? 1.来自 Amazon 的圣诞大礼包~ 201...
计算机专业的书普遍都这么贵,你们都是怎么获取资源的?
介绍几个可以下载编程电子书籍的网站。 1.Github Github上编程书资源很多,你可以根据类型和语言去搜索。推荐几个热门的: free-programming-books-zh_CN:58K 星的GitHub,编程语言、WEB、函数、大数据、操作系统、在线课程、数据库相关书籍应有尽有,共有几百本。 Go语言高级编程:涵盖CGO,Go汇编语言,RPC实现,Protobuf插件实现,Web框架实
自学系列 | 就谈兴趣!
最近接到很多读者的私信,基本都是有关方向的选择上以及如何自学上,还有部分读者问到有关前端的方向,能不能详细写写如果从零学习,能够达到找工作的标准。而且这个自学能力是我们一辈子的生存技能,无论干什么,都离开这种能力,这是毋容置疑的。 之前有关自学的文章确实挺零散的,而且还不够详细。所以小鹿打算利用业余时间把如何自学写成一整个系列《如何成为一个优秀的自学者》。写之前呢,希望我们每个人先放下心中的执念...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前言 很多次小伙伴问到学习方法,我也很想写这样的一篇文章来跟大家讨论下关于学习方法这件事情。 其实学习方法这个事情,我没啥发言权
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了......,这可都是提升你幸福感的高效率生产力工具哦! 走起!...... NO、1 ScreenToGif 屏幕,摄像头和
还看不懂同事代码?快来补一波 Java 7 语法特性
前言 Java 平台自出现到目前为止,已经 20 多个年头了,这 20 多年间 Java 也一直作为最流行的程序设计语言之一,不断面临着其他新兴编程语言的挑战与冲击。Java 语言是一种静态强类型语言,这样的语言特性可以让 Java 编译器在编译阶段发现错误,这对于构建出一个稳定安全且健壮的应用来说,尤为重要。但是也因为这种特性,让 Java 开发似乎变得缺少灵活性,开发某些功能的应用时,代码量可...
为什么TCP建立连接协议是三次握手,而关闭连接却是四次挥手呢?
看到了一道面试题:“为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?”,想想最近也到金三银四了,所以就查阅了相关资料,整理出来了这篇文章,希望对你们有所帮助。 TCP 连接 我们先来补一下基础什么是 TCP 协议?传输控制协议( Transmission Control Protocol, TCP )是种面向连接、确保数据在端到端间可靠传输的协议。面向连...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦......,嗯,我们导员是所有导员中最帅的一个,真的...... 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强......,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧?
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
一文带你看清 HTTP 所有概念
上一篇文章我们大致讲解了一下 HTTP 的基本特征和使用,大家反响很不错,那么本篇文章我们就来深究一下 HTTP 的特性。我们接着上篇文章没有说完的 HTTP 标头继续来介绍(此篇文章会介绍所有标头的概念,但没有深入底层) HTTP 标头 先来回顾一下 HTTP1.1 标头都有哪几种 HTTP 1.1 的标头主要分为四种,通用标头、实体标头、请求标头、响应标头,现在我们来对这几种标头进行介绍 通用
世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
点击上方蓝字设为星标下面开始今天的学习~今天分享四个代码量很少,但很牛逼很经典的算法或项目案例。1、no code 项目地址:https://github.com/kelseyhight...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。
面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL、存储过程和高级映射的类持久框架。MyBatis 消除了大部分 JDBC 的样板代码、手动设置参数以及检索结果。MyBatis 能够支持简单的 XML 和注解配置规则。使 Map 接口和 POJO 类映射到数据库字段和记录。 MyBatis 的特点 那么 MyBatis 具有什么特点呢?或许我们可以从如下几个方面来描述 MyBati...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合...
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧???? 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升自...
B站 MySQL学习随手记 全是满满的干货!
业务级别的MySQL学习与使用 1、数据库分类 1. 关系型数据库(SQL) MySQL,Oracle,SQL Server,DB2,SQLlite 通过表和表之间的,行与列之间的关系进行数据的存储。(例如:学生信息表) 2. 非关系型数据库(NoSQL)Not Only SQL Redis,MongDB 对象存储,通过对象的自身的属性来决定 2、MySQL安装与配置 下载压缩文件...
技术总监灵魂一问:精通那么多技术,为何还是做不好一个项目?
编写高质量可维护的代码既是程序员的基本修养,也是能决定项目成败的关键因素,本文试图总结出问题项目普遍存在的共性问题并给出相应的解决方案。 1. 程序员的宿命? 程序员的职业生涯中难免遇到烂项目,有些项目是你加入时已经烂了,有些是自己从头开始亲手做成了烂项目,有些是从里到外的烂,有些是表面光鲜等你深入进去发现是个“焦油坑”,有些是此时还没烂但是已经出现问题征兆走在了腐烂的路上。 国内基本上是这样,国...
强烈推荐 10 款珍藏的 Chrome 浏览器插件
Firebug 的年代,我是火狐(Mozilla Firefox)浏览器的死忠;但后来不知道为什么,该插件停止了开发,导致我不得不寻求一个新的网页开发工具。那段时间,不少人开始推荐 Chrome 浏览器,我想那就试试吧,期初我觉得用起来很别扭,毕竟我不是一个“喜新厌旧”的人。但用的次数越来越多,也就习惯了。 Chrome 浏览器有一个好处,就是插件极其丰富,只有你想不到的,没有你找不到的,这恐怕是...
我以为我对数据库索引十分了解,直到我遇到了阿里面试官。
索引的数据结构分析,数据库面试到索引最常见的问题分析,我总结了一下。
史上最牛逼的 VSCode 插件,提高开发效率!
这篇文章收集了一些常用的vscode插件,提高开发效率。
Java第二周学习
Java第二周学习 1. 数组 1.1 定义数组格式 数据类型[] 数组名 = new 数据类型[容量]; int[] arr = new int[10]; 赋值左侧 数据类型: 告知编译器,当前数组中能够保存的数据类型到底是什么?并且在确定数据类型之后,整个数组中保存的数据类型无法修改!!! []: 告知编译器这里定义的是一个数组类型数据。 明确告知编译器,数组名是一个【引用数据类型...
有没有简单一点的 Python 小例子或小项目?
分享一波Github上适合新手入门、又十分有趣的Python项目~ 1. 人脸识别 star:30.5k 最简洁的人脸识别库。可以使用Python和命令行工具提取、识别、操作人脸。其人脸识别是基于业内领先的C++开源库dlib中的深度学习模型,用Labeled Faces in the Wild人脸数据集进行测试,准确率高达99.38%。 而且有中文版README哟~ 2. faceai sta...
看完这篇JVM,阿里面试官都不怕!
前言 只有光头才能变强 本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 学习JVM的目的也很简单: 能够知道JVM是什么,为我们干了什么,具体是怎么干的。能够理解到一些初学时不懂的东西 在面试的时候有谈资 能装逼 (图片来源:https://zhuanlan.zhihu.com/p/25511795,侵删) 声...
相关热词 c#判断数字不得为负数 c#帧和帧协议 c#算偏移值 c# 在枚举中 c#6 字符串 插值 c#程序中的占位符标签 c#监听数组变化 c# vlc c#索引实现 c# 局域网广播通信
立即提问