2014-09-05 3 views
0

Я пытаюсь сделать аутентификацию входа в проект Android. Я хочу передать cookie из активности в activity.To передать cookie, я создал класс приложения. Вот класс приложения;Как передать аргументы активности активности

public class TestApplication extends Application{ 

    public Cookie tempClass; 

    public TestApplication() { 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public void onCreate() { 
     // TODO Auto-generated method stub 
     super.onCreate(); 
    } 

    public Cookie getTempClass() { 
     return tempClass; 
    } 

    public void setTempClass(Cookie tempClass) { 
     this.tempClass = tempClass; 
    } 

}

и я пытаюсь использовать в своей деятельности здесь;

public void run() { 
         // TODO Auto-generated method stub   
         //String sessionId=""; 
         Cookie userCookie=null; 
         List<Cookie> cookies = ((AbstractHttpClient) httpClient).getCookieStore().getCookies(); 
         if (cookies.isEmpty()) { 
           System.out.println("None"); 
          } else { 
           for (int i = 0; i < cookies.size(); i++) { 
            //System.out.println("-Cokkkiiieee " + cookies.get(i).toString()); 
            userCookie =cookies.get(i); 
           } 
           testAppObj = (TestApplication)getApplication(); 
           testAppObj.setTempClass(userCookie); 
           Intent menu = new Intent("android.intent.action.MENU"); 
           startActivity(menu); 
          } 
        } 


      }; 
       (new Thread(runnable)).start();    

LogCat показано:

FATAL EXCEPTİON : Thread-9 
java.lang.ClassCastException : android.app.Application 
at com.example.example.MainActivity$2.run(MainActivity.java:176) 
at java.lang.Thread.Run(Thread.java:1096) 
+0

[это] (http://stackoverflow.com/a/5575072/1777090)? иначе вы также можете использовать класс Application для хранения файлов cookie. Таким образом, вы можете получить к ним доступ через различные действия. –

+0

Есть ли способ передать этот файл cookie между действиями, кроме Bundle? – dodotu

+0

См. [Это] (http://stackoverflow.com/a/25665595/1777090). Вы можете сохранить такие файлы cookie и получить из класса приложения позже. –

ответ

0

Вы можете использовать класс Application для доступа тот же объект во многих мероприятиях.

public class TestApplication extends Application { 

    //Object declaration 

    public TestApplication() { 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public void onCreate() { 
     // TODO Auto-generated method stub 
     super.onCreate(); 
    } 

    //setter getter for object 
} 

Сейчас в вашей деятельности:

//after setContentView 
TestApplication testAppObj = (TestApplication) getApplication(); 
testAppObj.setSomeObj(myObj); 

//retrieve as: 
someObj = testAppObj.getterMethodOfObj(); 

Надеется, что это помогает.

PS:

Вы должны зарегистрировать класс приложений в вашем файле манифеста, как вы зарегистрировать свою деятельность:

<application 
     android:name="com.pkg.test.TestApplication " /> 
Смежные вопросы