pass specific object to other activity (Jsch)
-
19-10-2022 - |
Question
I have a problem with passing a Object from one activity to another. I'm using the Jsch() Class because I want to make an Sftp Connection.
This in my Login Activty:
ServerConnect lLogin = new ServerConnect(lUser,lPass,lIP,lPort);
ASYNCLogin lASYNC = new ASYNCLogin(lLogin,getBaseContext());
lASYNC.execute();
My ASYNC Task:
@Override
protected Integer doInBackground(Void... params)
{
if(mServerConnect.connectServer())
return 1;
return 0;
}
@Override
protected void onPostExecute(Integer result)
{
//Toast.makeText(mContext, "Sucessfully Connected!", Toast.LENGTH_LONG).show();
Intent lListFiles = new Intent(mContext,ListFilesActivity.class);
lListFiles.putExtra("ServerConnect", mServerConnect);
lListFiles.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(lListFiles);
}
The connect Method in my ServerConnect Class:
public boolean connectServer()
{
try
{
mSession=mSsh.getSession(mUsername,mServerIP,mServerPort);
mSession.setConfig(mConfig);
mSession.setPassword(mPassword);
mSession.connect();
mChannel = mSession.openChannel("sftp");
mChannel.connect();
}
}
How I get the Object in the other Activity:
mLogin = (ServerConnect) getIntent().getSerializableExtra("ServerConnect");
I tried it with Serializable, but it doesnt' work because I cant't implement the Serializable interface in the java.lang.Object Class.... I also tried it with Parcelable, but I don't know how to write the custom Class into a Parcable. Are there other ways to pass the Object from the Login Activity to another?
Logcat:
03-03 13:35:40.583: E/AndroidRuntime(4186): FATAL EXCEPTION: main
03-03 13:35:40.583: E/AndroidRuntime(4186): Process: com.example.securebox, PID: 4186
03-03 13:35:40.583: E/AndroidRuntime(4186): java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.example.securebox.ServerConnect)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.os.Parcel.writeSerializable(Parcel.java:1312)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.os.Parcel.writeValue(Parcel.java:1260)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.os.Parcel.writeArrayMapInternal(Parcel.java:618)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.os.Bundle.writeToParcel(Bundle.java:1665)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.os.Parcel.writeBundle(Parcel.java:632)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.content.Intent.writeToParcel(Intent.java:7013)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2076)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1419)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.app.ContextImpl.startActivity(ContextImpl.java:1039)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.app.ContextImpl.startActivity(ContextImpl.java:1021)
03-03 13:35:40.583: E/AndroidRuntime(4186): at com.example.securebox.ASYNCLogin.onPostExecute(ASYNCLogin.java:32)
03-03 13:35:40.583: E/AndroidRuntime(4186): at com.example.securebox.ASYNCLogin.onPostExecute(ASYNCLogin.java:1)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.os.AsyncTask.finish(AsyncTask.java:632)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.os.AsyncTask.access$600(AsyncTask.java:177)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.os.Handler.dispatchMessage(Handler.java:102)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.os.Looper.loop(Looper.java:137)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.app.ActivityThread.main(ActivityThread.java:4998)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.lang.reflect.Method.invokeNative(Native Method)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.lang.reflect.Method.invoke(Method.java:515)
03-03 13:35:40.583: E/AndroidRuntime(4186): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
03-03 13:35:40.583: E/AndroidRuntime(4186): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
03-03 13:35:40.583: E/AndroidRuntime(4186): at dalvik.system.NativeStart.main(Native Method)
03-03 13:35:40.583: E/AndroidRuntime(4186): Caused by: java.io.NotSerializableException: java.lang.Object
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1364)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:979)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:368)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1074)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1404)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:979)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:368)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1074)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1404)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
03-03 13:35:40.583: E/AndroidRuntime(4186): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)
03-03 13:35:40.583: E/AndroidRuntime(4186): at android.os.Parcel.writeSerializable(Parcel.java:1307)
03-03 13:35:40.583: E/AndroidRuntime(4186): ... 22 more
No correct solution
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow