果冻豆运行设备出现 Listactivity 错误(SPAN_EXCLUSIVE_EXCLUSIVE 跨度的长度不能为零)

2024-01-22

我的应用程序以启动画面启动,然后打开列表活动行,单击任何行将打开一个包含文本视图、两个按钮(其中一个打开无限图库,另一个打开自定义对话框)和菜单项(关于、首选项)的活动, 出口)。

这个应用程序在姜面包上完美运行,但在运行果冻豆的 Galaxy s3 上测试时,它可以正常打开,但当您单击列表活动行之一时,它似乎会忽略单击。 eclipse 上的日志猫显示:

SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 

但是,没有强制关闭(列表活动正常滚动并且菜单项工作正常)。

UPDATE:
我注意到这个应用程序的一些东西:大约一个月前我用 eclipse 创建了它,其名称可以说(trip)和今天的测试(trip.apk)在姜面包和果冻豆上效果都很好。

但我想把名字改成trip to travel我没有使用Refactor。相反,我创建了一个应用程序名称称为的新项目travel但所有其他内容与之前的应用程序相同trip包括类、资源以及用果冻豆测试时的显示:

SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 

更新3:

我解决了问题:

我将此行添加到我的应用程序中的所有 TextView 中,即:

 android:textIsSelectable="true"

该行导致行忽略点击,

所以我删除了它,现在新旧应用程序都可以很好地使用 API 。

更新4:

上述短语与旧问题相关并已解决,

现在的问题是:

我的应用程序可以与所有 API 完美配合,但经过测试时:

Galaxy S3 运行的果冻豆也能完美运行,

但在 Eclipse 日志 cat 显示错误:

 SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero  length

在不影响应用程序性能的情况下,有任何想法可以解决该错误。

任何解释将不胜感激,谢谢。

我的项目的代码:

Menu :

public class Menu extends ListActivity {

    String classes[] = { "Introduction", "DreamsTrip", "Day one", "Day Two",
            "Day Three", "Day Four", "Day Five", "Conclusion" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        // create background for whole list as image
        ListView lv = getListView();
        lv.setCacheColorHint(0);
        lv.setSelector(android.R.color.transparent);
        lv.setPadding(30, 0, 30, 0);
        lv.setVerticalScrollBarEnabled(false);
        lv.setBackgroundResource(R.drawable.list_background);
        lv.setDivider(new ColorDrawable(0x00000000));
        setListAdapter(new MyArrayAdapter(this, classes));
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        String cheese = classes[position];
        try {
            Intent ourIntent;
            if (position > 1 && position < 25) {
                Class ourClass = Class.forName("com.test.demo.MyDay");
                ourIntent = new Intent(Menu.this, ourClass);
                ourIntent.putExtra("cheese", cheese);
            } else {
                Class ourClass = Class.forName("com.test.demo." + cheese);
                ourIntent = new Intent(Menu.this, ourClass);
            }
            startActivity(ourIntent);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public boolean onCreateOptionsMenu(android.view.Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.cool_menu, menu);
        getLayoutInflater().setFactory(new Factory() {

            public View onCreateView(String name, Context context,
                    AttributeSet attrs) {
                if (name.equalsIgnoreCase(
                        "com.android.internal.view.menu.IconMenuItemView")) {
                    try {
                        LayoutInflater li = LayoutInflater.from(context);
                        final View view = li.createView(name, null, attrs);
                        new Handler().post(new Runnable() {

                            public void run() {
                                view.setBackgroundResource(R.drawable.border3);
                                ((TextView) view).setTextSize(25);
                                ((TextView) view).setTypeface(FontFactory
                                        .getBFantezy(getBaseContext()));
                                ((TextView) view).setTextColor(Color.RED);
                            }
                        });
                        return view;
                    } catch (InflateException e) {
                    } catch (ClassNotFoundException e) {
                    }
                }
                return null;
            }
        });
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.aboutUs:
            Intent i = new Intent("com.test.demo.ABOUT");
            startActivity(i);
            break;
        case R.id.preferences:
            Intent p = new Intent("com.test.demo.PREFS");
            startActivity(p);
            break;
        case R.id.exit:
            finish();
            break;
        }
        return false;
    }
}

我的阵列适配器:

public class MyArrayAdapter extends ArrayAdapter<String> {

    private final Activity context;
    private final String[] classes;
    Typeface tf;

    static class ViewHolder {

        public TextView text;
        public ImageView image;
    }

    public MyArrayAdapter(Activity context, String[] classes) {
        super(context, R.layout.row, classes);
        this.context = context;
        this.classes = classes;
        tf = Typeface.createFromAsset(context.getAssets(), "BFantezy.ttf");
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View rowView = convertView;
        if (rowView == null) {
            LayoutInflater inflater = context.getLayoutInflater();
            rowView = inflater.inflate(R.layout.row, null);
            ViewHolder viewHolder = new ViewHolder();
            viewHolder.text = (TextView) rowView.findViewById(R.id.row_label);
            viewHolder.image = (ImageView) rowView.findViewById(R.id.row_image);
            viewHolder.text.setTypeface(FontFactory.getBFantezy(getContext()));
            rowView.setTag(viewHolder);
        }
        ViewHolder holder = (ViewHolder) rowView.getTag();
        String s = classes[position];
        holder.text.setText(s);
        if (s.equals("Day one")) {
            holder.image.setImageResource(R.drawable.day1);
        }
        if (s.equals("Day Two")) {
            holder.image.setImageResource(R.drawable.day2);
        }
        if (s.equals("Day Three")) {
            holder.image.setImageResource(R.drawable.day3);
        }
        if (s.equals("Day Four")) {
            holder.image.setImageResource(R.drawable.day4);
        }
        if (s.equals("Day Five")) {
            holder.image.setImageResource(R.drawable.day5);
        }
        if (s.equals("Conclusion")) {
            holder.image.setImageResource(R.drawable.day_concl);
        }
        if (s.equals("DreamsTrip")) {
            holder.image.setImageResource(R.drawable.day_trip);
        }
        if (s.equals("Introduction")) {
            holder.image.setImageResource(R.drawable.day_intr);
        }
        return rowView;
    }
}

MyDay:

public class MyDay extends Activity {

    final Context context = this;
    private Button button;
    TextView tv2, tv3, tv4;
    String day;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        Boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.day);
        if (customTitleSupported) {
            getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
                    R.layout.custom_title);
        }
        initializeTextViews();
    }

    private void initializeTextViews() {
        tv2 = (TextView) findViewById(R.id.day_tv1);
        tv2.setTypeface(FontFactory.getBFantezy(getBaseContext()));
        tv3 = (TextView) findViewById(R.id.day_tv3);
        tv3.setTypeface(FontFactory.getDroidNaskh(getBaseContext()));
        day = getIntent().getStringExtra("cheese");
        if (day.equalsIgnoreCase("Day One")) {
            tv2.setText(Html.fromHtml(getString(R.string.beginning)));
            tv3.setText(Html.fromHtml(getString(R.string.day1)));
            button = (Button) findViewById(R.id.city_button);
            button.setOnClickListener(new OnClickListener() {

                public void onClick(View arg0) {
                    // custom dialog
                    final Dialog dialog = new Dialog(context,
                            R.style.cust_dialog);
                    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                    dialog.setContentView(R.layout.custom_dialog);
                    // set the custom dialog components - text, image and button
                    TextView text = (TextView) dialog
                            .findViewById(R.id.dialog_text);
                    text.setTypeface(FontFactory.getBFantezy(getBaseContext()));
                    text.setText(Html
                            .fromHtml(getString(R.string.torusim_places_1)));
                    Button dialogButton = (Button) dialog
                            .findViewById(R.id.dialog_Button);
                    dialogButton.setTypeface(FontFactory
                            .getBFantezy(getBaseContext()));
                    // if button is clicked, close the custom dialog
                    dialogButton.setOnClickListener(new OnClickListener() {

                        public void onClick(View v) {
                            dialog.dismiss();
                        }
                    });
                    dialog.show();
                }
            });
        } else if (day.equalsIgnoreCase("Day Two")) {
            tv2.setText(Html.fromHtml(getString(R.string.beginning)));
            tv3.setText(Html.fromHtml(getString(R.string.day2)));
            button = (Button) findViewById(R.id.city_button);
            button.setOnClickListener(new OnClickListener() {

                public void onClick(View arg0) {
                    // custom dialog
                    final Dialog dialog = new Dialog(context,
                            R.style.cust_dialog);
                    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                    dialog.setContentView(R.layout.custom_dialog);
                    // set the custom dialog components - text, image and button
                    TextView text = (TextView) dialog
                            .findViewById(R.id.dialog_text);
                    text.setTypeface(FontFactory.getBFantezy(getBaseContext()));
                    text.setText(Html
                            .fromHtml(getString(R.string.torusim_places_2)));
                    Button dialogButton = (Button) dialog
                            .findViewById(R.id.dialog_Button);
                    dialogButton.setTypeface(FontFactory
                            .getBFantezy(getBaseContext()));
                    // if button is clicked, close the custom dialog
                    dialogButton.setOnClickListener(new OnClickListener() {

                        public void onClick(View v) {
                            dialog.dismiss();
                        }
                    });
                    dialog.show();
                }
            });
        } else if (day.equalsIgnoreCase("Day Three")) {
            tv2.setText(Html.fromHtml(getString(R.string.beginning)));
            tv3.setText(Html.fromHtml(getString(R.string.day3)));
            button = (Button) findViewById(R.id.city_button);
            button.setOnClickListener(new OnClickListener() {

                public void onClick(View arg0) {
                    // custom dialog
                    final Dialog dialog = new Dialog(context,
                            R.style.cust_dialog);
                    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                    dialog.setContentView(R.layout.custom_dialog);
                    // set the custom dialog components - text, image and button
                    TextView text = (TextView) dialog
                            .findViewById(R.id.dialog_text);
                    text.setTypeface(FontFactory.getBFantezy(getBaseContext()));
                    text.setText(Html
                            .fromHtml(getString(R.string.torusim_places_3)));
                    Button dialogButton = (Button) dialog
                            .findViewById(R.id.dialog_Button);
                    dialogButton.setTypeface(FontFactory
                            .getBFantezy(getBaseContext()));
                    // if button is clicked, close the custom dialog
                    dialogButton.setOnClickListener(new OnClickListener() {

                        public void onClick(View v) {
                            dialog.dismiss();
                        }
                    });
                    dialog.show();
                }
            });
        } else if (day.equalsIgnoreCase("Day Four")) {
            tv2.setText(Html.fromHtml(getString(R.string.beginning)));
            tv3.setText(Html.fromHtml(getString(R.string.day4)));
            button = (Button) findViewById(R.id.city_button);
            button.setOnClickListener(new OnClickListener() {

                public void onClick(View arg0) {
                    // custom dialog
                    final Dialog dialog = new Dialog(context,
                            R.style.cust_dialog);
                    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                    dialog.setContentView(R.layout.custom_dialog);
                    // set the custom dialog components - text, image and button
                    TextView text = (TextView) dialog
                            .findViewById(R.id.dialog_text);
                    text.setTypeface(FontFactory.getBFantezy(getBaseContext()));
                    text.setText(Html
                            .fromHtml(getString(R.string.torusim_places_4)));
                    Button dialogButton = (Button) dialog
                            .findViewById(R.id.dialog_Button);
                    dialogButton.setTypeface(FontFactory
                            .getBFantezy(getBaseContext()));
                    // if button is clicked, close the custom dialog
                    dialogButton.setOnClickListener(new OnClickListener() {

                        public void onClick(View v) {
                            dialog.dismiss();
                        }
                    });
                    dialog.show();
                }
            });
        } else if (day.equalsIgnoreCase("Day Five")) {
            tv2.setText(Html.fromHtml(getString(R.string.beginning)));
            tv3.setText(Html.fromHtml(getString(R.string.day5)));
            button = (Button) findViewById(R.id.city_button);
            button.setOnClickListener(new OnClickListener() {

                public void onClick(View arg0) {
                    // custom dialog
                    final Dialog dialog = new Dialog(context,
                            R.style.cust_dialog);
                    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                    dialog.setContentView(R.layout.custom_dialog); // set the
                    // custom dialog components - text, image and button
                    TextView text = (TextView) dialog
                            .findViewById(R.id.dialog_text);
                    text.setTypeface(FontFactory.getBFantezy(getBaseContext()));
                    text.setText(Html
                            .fromHtml(getString(R.string.torusim_places_5)));
                    Button dialogButton = (Button) dialog
                            .findViewById(R.id.dialog_Button);
                    dialogButton.setTypeface(FontFactory
                            .getBFantezy(getBaseContext()));
                    // if button is clicked, close the custom dialog
                    dialogButton.setOnClickListener(new OnClickListener() {

                        public void onClick(View v) {
                            dialog.dismiss();
                        }
                    });
                    dialog.show();
                }
            });
        }
    }

    public void handleClick(View v) {
        // Create an intent to start the new activity.
        Intent intent = new Intent();
        intent.setClass(this, DayGallery.class);
        intent.putExtra("dayname", day);
        startActivity(intent);
    }
}

logcat:

D/AbsListView(14159): Get MotionRecognitionManager
D/dalvikvm(14159): GC_FOR_ALLOC freed 81K, 9% free 12164K/13315K, paused 13ms, total  
13ms
I/dalvikvm-heap(14159): Grow heap (frag case) to 14.306MB for 1555216-byte allocation
D/dalvikvm(14159): GC_CONCURRENT freed 2K, 8% free 13681K/14855K, paused 12ms+1ms, 
total 20ms
D/dalvikvm(14159): GC_FOR_ALLOC freed 0K, 8% free 13681K/14855K, paused 10ms, total 
10ms
I/dalvikvm-heap(14159): Grow heap (frag case) to 16.941MB for 2764816-byte allocation
D/dalvikvm(14159): GC_CONCURRENT freed 0K, 7% free 16381K/17607K, paused 12ms+2ms, 
total 23ms
D/libEGL(14159): loaded /system/lib/egl/libEGL_mali.so
D/libEGL(14159): loaded /system/lib/egl/libGLESv1_CM_mali.so
D/libEGL(14159): loaded /system/lib/egl/libGLESv2_mali.so
D/(14159): Device driver API match
D/(14159): Device driver API version: 10
D/(14159): User space API version: 10 
D/(14159): mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Tue Oct 16 15:37:13 KST 2012 
D/OpenGLRenderer(14159): Enabling debug mode 0
D/dalvikvm(14159): GC_FOR_ALLOC freed 1732K, 16% free 15672K/18439K, paused 19ms, 
total 19ms
E/SpannableStringBuilder(14159): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero 
length
E/SpannableStringBuilder(14159): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero 
length
E/SpannableStringBuilder(14159): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero 
length
E/SpannableStringBuilder(14159): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero 
length
D/dalvikvm(14159): GC_CONCURRENT freed 691K, 13% free 16102K/18439K, paused 13ms+2ms, 
total 27ms
E/SpannableStringBuilder(14159): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero 
length
E/SpannableStringBuilder(14159): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero 
length
E/SpannableStringBuilder(14159): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero 
length
E/SpannableStringBuilder(14159): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero 
length
W/OpenGLRenderer(14159): Shape round rect too large to be rendered into a texture 
(680x12472, max=4096x4096)
W/OpenGLRenderer(14159): Shape round rect too large to be rendered into a texture 
(688x12480, max=4096x4096)
E/SpannableStringBuilder(14159): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero 
length
E/SpannableStringBuilder(14159): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero 
length
E/SpannableStringBuilder(14159): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero 
length

要了解这里发生的情况,一切都始于关于什么是TextView应该和不应该。根据TextView 的 Android 源码 http://code.metager.de/source/xref/android/4.1.1/frameworks/base/core/java/android/widget/TextView.java:

/**
 * Displays text to the user and optionally allows them to edit it.  A TextView
 * is a complete text editor, however the basic class is configured to not
 * allow editing; see {@link EditText} for a subclass that configures the text
 * view for editing.

这意味着,即使您所做的只是在屏幕上放置一段文本,隐藏在其后面的是全文突出显示、选择和编辑功能。这里发生的情况是,为解决其中的问题而进行的一些调整似乎干扰了其他一些功能,并创建了一些日志行。这种情况被赋予了更多的权重,比如说,Nexus 7 错误“SPAN_EXCLUSIVE_EXCLUSIVE 跨度的长度不能为零” https://stackoverflow.com/questions/13488695/nexus-7-error-span-exclusive-exclusive-spans-cannot-have-a-zero-length?rq=1,在某些 Android 版本上,这种情况似乎可以通过禁用文本(输入)字段中的自动完成来解决:

View.setInputType( InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS );

这也可以在 XML 中使用相应的标签来完成TextView:

android:inputType="none"

有问题的行似乎已经出现在 Android 4.1 (Jelly Bean) 中,setSpan的函数SpannableStringBuilder (eg. 2.2.3 来源 http://code.metager.de/source/xref/android/2.2.3/frameworks/base/core/java/android/text/SpannableStringBuilder.java vs 4.1.1 来源 http://code.metager.de/source/xref/android/4.1.1/frameworks/base/core/java/android/text/SpannableStringBuilder.java)。尝试在零长度的字符串中设置跨度会触发日志行。这就是为什么设置它以便不需要选择文本的(子)部分应该可以避免此错误,可以通过上述提示或使用:

android:textIsSelectable="false"
android:editable="false"

一个更具推测性的解决方案可能是确保 a 中永远不存在空白字符串TextView通过将字符“\u200b”(未显示的零宽度空白字符)添加到您放入的每个字符串中TextViews,或者通过覆盖setText(简单地将其添加到字符串的末尾)在自定义中TextView或者将其放入发送到的每个字符串的代码中TextViews.

对于那些喜欢深入研究 Android 系统并覆盖其中部分内容的人来说,根据这段android源码 http://code.metager.de/source/xref/android/4.1.1/frameworks/base/core/java/android/text/Editable.java看起来可以通过以下方式解决这个问题。但是,绝对不能保证它有效。真正勇敢的人(傻瓜)可以为自己写一个完整的SpannableStringBuilder....

  1. 创建您自己的形式SpannableStringBuilder这会捕获条件。这个例子只是安静地停止,而不是像原来那样大声停止:

    import android.text.SpannableStringBuilder;
    
    public class MySpannableStringBuilder extends SpannableStringBuilder {
        // Taken from SpannableStringBuilder.java
        private static final int MARK = 1;
        private static final int POINT = 2;
        private static final int START_MASK = 0xF0;
        private static final int END_MASK = 0x0F;
        private static final int START_SHIFT = 4;
    
        MySpannableStringBuilder() {
            super();
        }
    
        MySpannableStringBuilder(CharSequence text) {
            super(text);
        }
    
        MySpannableStringBuilder(CharSequence text, int start, int end) {
            super(text, start, end);
        }
    
        @Override
        public void setSpan(Object what, int start, int end, int flags) {
            // Determine if the error is going to be triggered, if so fail silently
            int flagsStart = (flags & START_MASK) >> START_SHIFT;
            int flagsEnd = flags & END_MASK;
            if (flagsStart == POINT && flagsEnd == MARK && start == end) {
                return;
            }
    
            // All good, so call the real routine
            super.setSpan(what, flagsStart, end, flagsEnd);
        }
    }
    
  2. 创造MyEditableFactory extends Editable.Factory并将其设置为返回您的 SpannableStringBuilder:

    import android.text.Editable;
    
    public class MyEditableFactory extends Editable.Factory {
        private static MyEditableFactory sInstance = new MyEditableFactory();
    
        /**
          * Returns this Editable Factory.
          */
        public static Editable.Factory getInstance() {
            return sInstance;
        }
    
        public Editable newEditable(CharSequence source) {
            return new MySpannableStringBuilder(source);
        }
    }
    

除了编写操作系统的自定义版本并将其安装在手机上之外,我不确定还有什么可能。

欢迎提出所有改进建议,以及在各种操作系统情况下使用此代码的反馈。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

果冻豆运行设备出现 Listactivity 错误(SPAN_EXCLUSIVE_EXCLUSIVE 跨度的长度不能为零) 的相关文章

随机推荐

  • 从网页中打开查找器/资源管理器中的文件夹?

    如果我有文件系统路径 我可以在资源管理器 在 Windows 上 或 Finder 在 OS X 上 中打开一个窗口 显示该路径指向的文件夹吗 跨平台和 或无插件答案的 Cookie 点 For 节点 webkit http docs nw
  • PySpark 流式处理:窗口和转换

    我正在尝试从 Spark 流数据源读取数据 按事件时间对其进行窗口化 然后对窗口化数据运行自定义 Python 函数 它使用非标准 Python 库 我的数据框看起来像这样 Time Value 2018 01 01 12 23 50 20
  • 使用名称中带有字符串和迭代索引的 savefig

    我需要使用Python中的 savefig 来保存while循环的每次迭代的绘图 并且我希望我给图形指定的名称包含文字部分和数字部分 该数字来自数组或者是与迭代索引相关联的数字 我举一个简单的例子 index py from numpy i
  • 根据片段更改操作栏菜单状态

    我试图根据可见的片段在操作栏中显示 隐藏项目 在我的 MainActivity 中我有以下内容 Called whenever invalidateOptionsMenu is called Override public boolean
  • 如果我有嵌套的dispatch_async调用会发生什么?

    这可能是一个愚蠢的问题 但我需要自己问并解决这个问题 要将块提交到队列上执行 请使用以下函数dispatch sync and dispatch async 它们都采用队列和块作为参数 dispatch async立即返回 异步运行该块 而
  • 如果 CDI 和 EJB 都捆绑在 EAR 中,如何让 CDI 参与战争并运行 EJB

    我正在尝试构建一个在 EAR 中组装的企业应用程序 该应用程序应包含一个或多个ejb jars以及一个或多个war的 我想大量使用CDI 拦截器和生产者 在第一步中 我想使用日志生产者它被放置在ejb jar在应用程序的所有领域 我所做的是
  • 尝试创建一个圆形菜单

    我正在尝试使用 html 和 css 创建一个带有放射线的圆形菜单 但白色边框构建得不好 而且它在谷歌浏览器中看起来不太好 不像圆圈 我需要获得第 5 项和第 6 项之间的最后一个白色径向 我尝试过下一个代码 DEMO http jsfid
  • 无效的 CRM 2011 LINQ 查询:“‘where’条件无效。实体成员正在调用无效的属性或方法。”

    我正在尝试执行此查询来检索特定实体类型的审核项目 public List
  • 哈希表可以序列化吗?

    我看到一种普遍存在的belief https blogs msdn microsoft com adam 2010 09 10 how to serialize a dictionary or hashtable in c 2009年文章
  • Android:如何在软键盘中的候选视图上制作按钮?

    我想在按钮内制作candidateView 但是 你看到日志猫 请分享代码 我的代码软键盘 java Override public View onCreateCandidatesView LayoutInflater li LayoutI
  • 包的功能列表[重复]

    这个问题在这里已经有答案了 有没有一种简单 友好的方法来列出包的所有功能 而无需下载那些巨大的 PDF 包参考 我需要这个来让我熟悉这个包 找到合适的功能等 I tried rjags但它没有达到我的预期 加载包 例如car包裹 然后使用l
  • 变量总是重置

    我正在使用表单创建类似 mastermind 的游戏 我的问题是我有一个变量 attempts 我希望它在每次用户猜测数字时增加 但它似乎总是重置为零 因此我的尝试次数将始终显示为 1 如果有帮助 这里是我正在使用的代码 black 0 w
  • 如何使用assertTrue?

    I have package com darlik test import org junit Assert public class Test public static void main String args assertTrue
  • LINQ 多对多关系:解决方案?

    到目前为止 LINQ 已经非常优雅 但是为了执行基本的 m2m 查询 它没有提供我可以立即看到的解决方案 更糟糕的是 虽然它适用于任何其他表关系 但 LINQ 没有在我的 m2m 表的类结构中提供关联 所以我可以做类似的事情 artwork
  • justify-items 如何在 display:block 元素上工作

    The MDN 文档 https developer mozilla org en US docs Web CSS justify items of justify items指出 在块级布局中 它在内联轴上对齐其包含块内的项目 现在 我认
  • 导航视图 Sencha Touch 2

    我在 Sencha Touch 2 中的 NavigationView 有问题 当我按下 后退 按钮时 我无法导航多个窗口 我使用 view push 和 view pop 进行导航 view js Ext define MyApp vie
  • 扫描目录中的所有文件并按文件类型返回计数

    我刚刚加入一家 IT 公司并开始使用 ColdFusion 我的经理希望我在 ColdFusion 中编写代码 将扫描任何目录 例如c cf 其中包含数百个文件 包括 jQuery 文件 cfm 文件等 并给出此类文件的计数 我们可以手动选
  • Android N 中的 Java 8 Stream API

    根据谷歌的介绍 http android developers blogspot de 2016 03 first preview of android n developer html 从 Android N 开始 Android API
  • 使用 MySQL 和 PHP 读取部分 json 数据

    我使用一个 CMS 它以 JSON 格式在 MySQL 中保存资源 在一张表中 与来自 MySQL 的正常数据一起 当我循环数据时 我得到一个数组 JSON 数据 但我需要在 JSON 数据中搜索XNCatnCode Trying to l
  • 果冻豆运行设备出现 Listactivity 错误(SPAN_EXCLUSIVE_EXCLUSIVE 跨度的长度不能为零)

    我的应用程序以启动画面启动 然后打开列表活动行 单击任何行将打开一个包含文本视图 两个按钮 其中一个打开无限图库 另一个打开自定义对话框 和菜单项 关于 首选项 的活动 出口 这个应用程序在姜面包上完美运行 但在运行果冻豆的 Galaxy