它在以下版本中运行良好.
当活动暂停并再次恢复时,它会在编辑文本中显示图像名称而不是图像以及文本.
请参考图像和相关代码
public class MainActivity extends Activity implements OnClickListener,OnItemClickListener { String path = Environment.getExternalStorageDirectory().getabsolutePath() + "/Emoticons";HashMap<String,Integer> emoticons = new linkedHashMap<String,Integer>();ArrayList<String> arrayList = new ArrayList<String>();Bitmap bitmap;EditText editText;Imagebutton cat_one;ArrayList<String> name = new ArrayList<String>();VIEw vIEw;CharSequence[] namesList = { "Email"};Dialog dialog;GrIDVIEw grIDVIEw;@OverrIDepublic voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { file sd = new file(path); if (!sd.exists()) sd.mkdirs(); } addComponents(); addListeners();}private voID fillArrayList() { Iterator<Entry<String,Integer>> iterator = emoticons.entrySet() .iterator(); Log.d("Iterator",iterator.toString()); while (iterator.hasNext()) { Entry<String,Integer> entry = iterator.next(); Log.d("Entry",entry.getKey()); arrayList.add(entry.getKey()); }}private voID getcategory(String cat_name) { // Todo auto-generated method stub if (name.size() > 0) name.clear(); if (emoticons.size() > 0) emoticons.clear(); if (arrayList.size() > 0) arrayList.clear(); FIEld names[] = R.drawable.class.getFIElds(); for (FIEld f : names) { if (f.getname().contains(cat_name)) { name.add(f.getname()); } } for (int i = 0; i < name.size(); i++) { int ID = getResources().getIDentifIEr(name.get(i),"drawable",getPackagename()); Log.d("Drawable Folder",name.get(i).toString()); emoticons.put(name.get(i),ID); } fillArrayList();}private voID addListeners() { // Todo auto-generated method stub cat_one.setonClickListener(this); grIDVIEw.setonItemClickListener(this);}private voID addComponents() { // Todo auto-generated method stub editText = (EditText) findVIEwByID(R.ID.editText1); editText.requestFocus(); vIEw = getLayoutInflater().inflate(R.layout.popup,null); grIDVIEw = (GrIDVIEw) vIEw.findVIEwByID(R.ID.grIDLayout); dialog = new Dialog(this,R.style.DialogSlIDeAnim); dialog.requestwindowFeature(Window.FEATURE_NO_Title); dialog.getwindow().setGravity(Gravity.BottOM); Window window = dialog.getwindow(); window.setFlags(WindowManager.LayoutParams.FLAG_NOT_touch_MODAL,WindowManager.LayoutParams.FLAG_NOT_touch_MODAL); window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); dialog.setContentVIEw(vIEw); dialog.setCanceledOntouchOutsIDe(true); cat_one = (Imagebutton) findVIEwByID(R.ID.category_one);}public Spannable getSmiledText(Context context,String text) { SpannableStringBuilder builder = new SpannableStringBuilder(text); int index; for (index = 0; index < builder.length(); index++) { for (Entry<String,Integer> entry : emoticons.entrySet()) { int length = entry.getKey().length(); if (index + length > builder.length()) continue; if (builder.subSequence(index,index + length).toString() .equals(entry.getKey())) { builder.setSpan(new ImageSpan(context,entry.getValue()),index,index + length,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); index += length - 1; break; } } } return builder;}class ImageAdapter extends BaseAdapter { public int getCount() { return arrayList.size(); } public Object getItem(int position) { return arrayList.get(position); } public long getItemID(int position) { return position; } public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) { convertVIEw = LayoutInflater.from(MainActivity.this).inflate( R.layout.row,null); ImageVIEw imageVIEw = (ImageVIEw) convertVIEw .findVIEwByID(R.ID.imageVIEw1); imageVIEw.setBackgroundDrawable(getResources().getDrawable( emoticons.get(arrayList.get(position)))); Log.d(getLocalClassname(),String.valueOf(emoticons.get(arrayList.get(position)))); return convertVIEw; }}@OverrIDepublic voID onClick(VIEw v) { // Todo auto-generated method stub if (v == cat_one) { getcategory("good"); grIDVIEw.setAdapter(new ImageAdapter()); }}@OverrIDepublic voID onItemClick(AdapterVIEw<?> arg0,VIEw arg1,int position,long arg3) { // Todo auto-generated method stub String value = grIDVIEw.getAdapter().getItem(position).toString(); Spannable spannable = getSmiledText(MainActivity.this,value); SpannableStringBuilder ssb = new SpannableStringBuilder( editText.getText()).append(spannable).append(" "); editText.setText(ssb); editText.setSelection(editText.getText().length()); editText.setCursorVisible(true);} }解决方法 我想我们需要一些追踪才能更好地了解出了什么问题.但是当你无法加载图像时,我想知道是否可能失去了对外部存储目录的访问权限 总结
以上是内存溢出为你收集整理的应用程序无法在Android 4.0及更高版本中运行全部内容,希望文章能够帮你解决应用程序无法在Android 4.0及更高版本中运行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)