小编Nid*_*ger的帖子

Android:ArrayIndexOutOfBounds LayoutParams中addRule的异常

我写了这个函数:

private void SetNewsBackButton(Boolean visible)
{
    LinearLayout backButton = (LinearLayout)findViewById(R.id.backButton);
    TextView headerText = (TextView)findViewById(R.id.headerText);
    RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)headerText.getLayoutParams();
    if (visible)
    {
        backButton.setVisibility(View.VISIBLE);
        params.addRule(RelativeLayout.END_OF, R.id.backButton);
    } else {
        backButton.setVisibility(View.INVISIBLE);
        params.addRule(RelativeLayout.END_OF, 0);
    }
}
Run Code Online (Sandbox Code Playgroud)

该函数应使LinearLayout可见或不可见,并在可见时将文本字段与其对齐,在不可见时不对齐.

我的问题:应用程序崩溃了

09-10 12:48:32.260  16663-16663/nidhoegger.org.nfansde W/dalvikvm? threadid=1: thread exiting with uncaught exception (group=0x41a9c600)
09-10 12:48:32.270  16663-16663/nidhoegger.org.nfansde E/AndroidRuntime? FATAL EXCEPTION: main
java.lang.ArrayIndexOutOfBoundsException: length=16; index=19
        at android.widget.RelativeLayout$LayoutParams.addRule(RelativeLayout.java:1222)
        at nidhoegger.org.nfansde.NewsList.SetNewsBackButton(NewsList.java:147)
        at nidhoegger.org.nfansde.NewsList.ReadNews(NewsList.java:182)
        at nidhoegger.org.nfansde.NewsList$1.onItemClick(NewsList.java:103)
        at android.widget.AdapterView.performItemClick(AdapterView.java:298)
        at android.widget.AbsListView.performItemClick(AbsListView.java:1199)
        at android.widget.ListView.performItemClick(ListView.java:4444)
        at android.widget.AbsListView$PerformClick.run(AbsListView.java:3067)
        at android.widget.AbsListView$1.run(AbsListView.java:3753)
        at android.os.Handler.handleCallback(Handler.java:615)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:155)
        at …
Run Code Online (Sandbox Code Playgroud)

java android exception

2
推荐指数
1
解决办法
1143
查看次数

检测将窗口从一个显示器移动到另一个显示器

我有一个带有opengl视图的窗口,其中包含内容.我在macOS中遇到的问题是,当我将窗口从一个监视器移动到另一个监视器时,其内容会搞砸.重绘可以解决问题.因此,当它从一个监视器移动到另一个监视器时,我需要重新绘制GL区域.有没有办法检测窗口从一个监视器到另一个监视器的转换?

opengl macos cocoa

2
推荐指数
1
解决办法
50
查看次数

为什么4打印为素数

我有一个数组,我想知道这个数组中的素数是多少.我知道4号不是"素数",但它仍然给我打了4号我错过了什么?我知道我不能添加第二个if:"if(isPrime && number!= 4)但我只是想了解我的代码有什么问题以及为什么编号4打印谢谢

    int numbe []= {1,2,3,4,5,6,7,8,9,10};

    System.out.println("Prime Numbers are:");
    for(int number : numbe)
    {
        boolean isPrime =true;
        for (int i = 2; i < number / 2 ; i++)
        {
            if ((number % i) == 0)
            {
                isPrime = false;
                break;
            }
        }
        if (isPrime)
            System.out.println("Prime Number: " + number);
    }
Run Code Online (Sandbox Code Playgroud)

java

1
推荐指数
2
解决办法
198
查看次数

优化:内联还是宏功能?

我需要以某种方式优化程序.现在我遇到了这个问题:我有一个一维数组,表示像素数据形式的纹理.我现在需要操纵那些数据.通过以下函数访问该数组:

(y * width) + x
Run Code Online (Sandbox Code Playgroud)

有x,y坐标.现在问题是,对于这个功能最优化的是什么方式,我考虑了以下两种可能性:

排队:

inline int Coords(x,y) { return (y * width) + x); }
Run Code Online (Sandbox Code Playgroud)

宏:

#define COORDS(X,Y) ((Y)*width)+(X)
Run Code Online (Sandbox Code Playgroud)

哪一个是在这里使用的最佳实践,还是有办法得到一个更加优化的变体,我不知道?

c++ arrays optimization

0
推荐指数
1
解决办法
102
查看次数

仅对具有相同基类的类授予对函数的访问权限

我有一个基类,让我们称之为它base_tbase_t有一个名为的功能void render()。我希望所有派生自base_t该类的类都可以访问该功能,但没有其他人可以使用。渲染函数将定义base_tvirtual void render() = 0;使其成为纯虚拟的。

如何在C ++中实现呢?通过朋友吗?还是有其他方法可以做到这一点?

为了更清楚一点,我希望类A(派生自base_t)可以访问render()类中的功能B(也派生自base_t),该功能由实现AB但在中是纯虚定义的base_t

这是一个例子:

class base_t
{
private:
    virtual void render() = 0;
};

class A : public base_t
{
private:
    virtual void render()
    {
        // Do Stuff
    }
};

class B : public base_t
{
public:
    void dostuff(A *classA)
    {
        // here I want to …
Run Code Online (Sandbox Code Playgroud)

c++

0
推荐指数
1
解决办法
61
查看次数

标签 统计

c++ ×2

java ×2

android ×1

arrays ×1

cocoa ×1

exception ×1

macos ×1

opengl ×1

optimization ×1