小编Cro*_*roc的帖子

如何防止客户端在Android库中看到内部私有类?

我有一个包含几个包的图书馆 -

让我们说
包a;
包b;

在包内我有公共a_class
包里面b我有公共b_class
a_class使用b_class.

我需要从中生成一个库,但我不希望客户端看到b_class.

我所知道的唯一解决方案是将我精美易懂的软件包展平为单个软件包,并使用b_class的默认软件包访问.还有另一种方法吗?也许使用接口或某种形式的设计模式?

java android jar android-library

23
推荐指数
2
解决办法
2733
查看次数

在Android视图中使用UI元素进行测试

我试图用以下测试用例测试简单的UI,主要思想是在测试中设置一些UI文本(模仿用户输入),然后主动点击一个事件.

public class StackTestCase 
extends ActivityInstrumentationTestCase2<Stack> 
{
private StackDemo mActivity;

private EditText eaten;
    public StuckTestCase() {
         super("com.crocodil.software.stack", Stack.class);


    }
    public StuckTestCase(Class<Stack> activityClass) {
         super("com.crocodil.software.stack", activityClass);

    }
    protected void setUp() throws Exception {
        super.setUp();
        mActivity = this.getActivity();
        mCount = (Button) mActivity.findViewById(com.crocodil.software.stack.R.id.action);
        eaten = (EditText) mActivity.findViewById(com.crocodil.software.stack.R.id.eaten);

    }

    public void testPreconditions() {
        assertNotNull(mStatus);
      }

    public void testSimpleDefaults(){
        double status = Double.valueOf(mStatus.getText().toString());
        eaten.setText(2);
        mCount.performClick();
        assertEquals((status-2),Double.valueOf(mStatus.getText().toString()));
    }

}
Run Code Online (Sandbox Code Playgroud)

运行结果是例外 -

android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
at …
Run Code Online (Sandbox Code Playgroud)

junit android android-edittext

9
推荐指数
2
解决办法
8155
查看次数

SpannableStringInternal中的StringIndexOutOfBoundsException

我不断收到市场上的以下错误报告:

java.lang.StringIndexOutOfBoundsException: length=51; regionStart=37; regionLength=-15 at
java.lang.String.startEndAndLength(String.java:593) at
java.lang.String.getChars(String.java:902) at
android.text.SpannableStringInternal.getChars(SpannableStringInternal.java:70)
at android.text.TextUtils.getChars(TextUtils.java:70) at
android.text.TextLine.set(TextLine.java:160) at
android.text.Layout.draw(Layout.java:424) at
android.widget.TextView.onDraw(TextView.java:5262) at
android.view.View.draw(View.java:11184) at
android.view.ViewGroup.drawChild(ViewGroup.java:2892) at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2494) at
android.view.ViewGroup.drawChild(ViewGroup.java:2890) at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2494) at
android.view.ViewGroup.drawChild(ViewGroup.java:2890) at
android.widget.ListView.drawChild(ListView.java:3231) at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2494) at
android.widget.AbsListView.dispatchDraw(AbsListView.java:2277) at
android.widget.ListView.dispatchDraw(ListView.java:3226) at
android.view.View.draw(View.java:11289) at
android.widget.AbsListView.draw(AbsListView.java:3760) at
android.view.ViewGroup.drawChild(ViewGroup.java:2892) at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2494) at
android.view.ViewGroup.drawChild(ViewGroup.java:2890) at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2494) at
android.view.ViewGroup.drawChild(ViewGroup.java:2890) at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2494) at
android.view.ViewGroup.drawChild(ViewGroup.java:2890) at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2494) at
android.view.ViewGroup.drawChild(ViewGroup.java:2890) at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2494) at
android.view.View.draw(View.java:11187) at
android.widget.FrameLayout.draw(FrameLayout.java:450) at
com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2291)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2210) at
android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1816) at
android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2628) at
android.os.Handler.dispatchMessage(Handler.java:99) at
android.os.Looper.loop(Looper.java:137) at …
Run Code Online (Sandbox Code Playgroud)

android spannablestring

6
推荐指数
1
解决办法
1063
查看次数