NullPointerException Когда Intent используется Android после проверки логического условия? - PullRequest
0 голосов
/ 22 февраля 2012

У меня есть действие, использующее логическое условие для проверки чего-либо. Если логическое условие Удовлетворительно, мне нужно перейти на следующую страницу. Но когда условие удовлетворяет устройству, происходит сбой с NullPointerException. Я даю код ниже

.

Логическое условие

 boolean check()
{

    boolean matches=false;
    int falseFlag=0;
    if(cc.length==picarray.length)
    {
        for (int i=0;i<cc.length;i++)
        {
            if(cc[i].equals(picarray[i]))  
            {

                //---The Database Value Stored in Array is modified---

                xmin=X[i]-25;
                xmax=X[i]+25;
                ymin=Y[i]-25;
                ymax=Y[i]+25;

                //---Check Whether The Selected Password Is Inside The Array Values---

                if(xmin<realx[i]&&realx[i]<xmax)
                {
                    System.out.println("TRUE");
                }
                else
                {
                    falseFlag++;
                    System.out.println("FALSE");

                }
                if(ymin<realy[i]&&realy[i]<ymax)
                {

                    System.out.println("TRUE");
                }
                else
                {
                    falseFlag++;
                    System.out.println("FALSE");

                }

            }
            else
            {
                falseFlag++;
            }



        }

    }
    else
    {
        falseFlag++;
    }
    if(falseFlag==0)
    {
        matches=true;
    }
    System.out.println("Authentication returns "+matches);
    return matches;

}

при нажатии кнопки

 b.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

  if(check())
                {
                    Intent sa=new Intent(Test.class,Test2.class);
                                    startActivity(sa);
                    System.out.println("U R AUTHENTICATED");


                }
                else
                {
                    System.out.println("INVALID USER");
                    Toast.makeText(getApplicationContext(), "INVALID USER", Toast.LENGTH_LONG).show();

                }

    }
    });

Ответы [ 3 ]

3 голосов
/ 22 февраля 2012

попробуйте это,

Intent sa=new Intent(getApplicationContext(),Test2.class);

в основном намерение нуждается в контексте, а не в классе ...

я сомневаюсь, что (Intent sa=new Intent(Test.class,Test2.class);) скомпилирует

1 голос
/ 22 февраля 2012
Intent sa=new Intent(Test.class,Test2.class);

Первый параметр должен быть Test.this (Context), это не выдает ошибку времени компиляции ??

1 голос
/ 22 февраля 2012

Первый аргумент - Context, поэтому при создании намерения оно должно быть:

Intent sa = новое намерение (Test. this , Test2.class);

вместо

Intent sa = новое намерение (Test. class , Test2.class);

Это также должно работать:

Intent sa = новое намерение (v.getContext (), Test2.class);

...