2014-05-09 1 views
2

이번에는 Serializable Interface를 사용하고 있습니다. 나는 다른 활동 한 활동에서의 ArrayList를 전달하려는, 그러나 그것은 나에게 "값을 정렬화할 수없는"이 오류를 제공, 코드는,Android 런타임 오류 : 값을 마샬링 할 수 없습니다.

// 보내기 활동 :

public class LogIn extends Activity implements OnClickListener 
    { 
    ProgressDialog pd; 
    ImageButton logIn,registr; 
    EditText userName,Password; 
    public static String usrName,passwrd; 
    String TAG=LogIn.class.getName(); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.login); 
     userName=(EditText)findViewById(R.id.logIn_etuserName); 
     Password=(EditText)findViewById(R.id.logIn_etpaswrd); 
     logIn=(ImageButton)findViewById(R.id.logIn_B_logIn); 
     registr=(ImageButton)findViewById(R.id.logIn_B_registration);  
     logIn.setOnClickListener(this); 
     registr.setOnClickListener(this); 

    } 
    @Override 
    public void onClick(View v) 
    { 

     String respns=""; 
     switch (v.getId()) 
     { 
     case R.id.logIn_B_logIn: 

      try 
      { 
       usrName=userName.getText().toString(); 
       passwrd=Password.getText().toString(); 
         if(usrName.contentEquals("") && passwrd.contentEquals("")) 
       { 
        Toast.makeText(getApplicationContext(), "Enter  userName",Toast.LENGTH_LONG).show(); 
       } 
     //      else if(passwrd.contentEquals("")) 
    //    { 
    //     Toast.makeText(getApplicationContext(), "Enter  password",Toast.LENGTH_LONG).show(); 
    //    } 
       else 
       { 
        pd=ProgressDialog.show(LogIn.this, "LogIn", "Logging"); 
        new Athenticate().execute(); 


       } 
      } catch (Exception e) 
      { 
       e.printStackTrace(); 
      } 
      break; 
     case R.id.logIn_B_registration: 
      Intent i=new Intent(LogIn.this,Registration.class); 
      startActivity(i); 
      break; 
      default: 
      break; 
     } 

    } 

    private class Athenticate extends AsyncTask<String, Void,ArrayList<SettrGettr> > 
    { 
     ArrayList<SettrGettr> lst; 

    @Override 
    protected ArrayList<SettrGettr> doInBackground(String... params) 
    { 
     lst=(ArrayList<SettrGettr>)new AllMethods().logInMethod(); 
     pd.cancel(); 
     return lst; 
    } 

    @Override 
    protected void onPostExecute(ArrayList<SettrGettr> result) 
    { 
     ArrayList<SettrGettr> l=result; 
     try { 
      if(l.size()>0) 
      { 
      Intent i=new Intent(LogIn.this,Home.class); 
      Bundle b=new Bundle(); 
      b.putSerializable("shahid",l); 
      //i.putExtras(b); 
      i.putExtras(b); 
      startActivity(i); 
      } 
      else 
      { 

      } 
     } catch (Exception e) 
     { 
     Log.d(TAG, "Errors are ::"+e.getMessage()); 
     } 

    } 




} 


} 

    //Recieving Activity: 
     public class Home extends Activity implements Serializable 
    { 

    ListView lv; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.home); 
     lv=(ListView)findViewById(R.id.home_lv); 

     ArrayList<SettrGettr> gtList=(ArrayList<SettrGettr>)getIntent().getSerializableExtra("shahid"); 
     //(ArrayList<SettrGettr>)getIntent().getSerializableExtra("shahid"); 

     ArrayAdapter<SettrGettr> adp=new ArrayAdapter<SettrGettr>(Home.this,android.R.layout.simple_list_item_1,gtList); 
     lv.setAdapter(adp); 


    } 


} 
//setterGettr: 

public class SettrGettr { 
    int ID; 
    String Name = ""; 
    String FName = ""; 
    String Class = ""; 
    String UserName = ""; 
    String Password = ""; 
    String DOB = ""; 
    String MobileNo = ""; 
    String Relation = ""; 
    ArrayList<SettrGettr> msttrList; 

    public ArrayList<SettrGettr> getMsttrList() { 
     return msttrList; 
    } 

    public void setMsttrList(ArrayList<SettrGettr> msttrList) { 
     this.msttrList = msttrList; 
    } 

    public int getID() { 
     return ID; 
    } 

    public void setID(int iD) { 
     ID = iD; 
    } 

    public String getName() { 
     return Name; 
    } 

    public void setName(String name) { 
     Name = name; 
    } 

    public String getFName() { 
     return FName; 
    } 

    public void setFName(String fName) { 
     FName = fName; 
    } 

    public String getCurrentClass() { 
     return Class; 
    } 

    public void setClass(String class1) { 
     Class = class1; 
    } 

    public String getUserName() { 
     return UserName; 
    } 

    public void setUserName(String userName) { 
     UserName = userName; 
    } 

    public String getPassword() { 
     return Password; 
    } 

    public void setPassword(String password) { 
     Password = password; 
    } 

    public String getDOB() { 
     return DOB; 
    } 

    public void setDOB(String dOB) { 
     DOB = dOB; 
    } 

    public String getMobileNo() { 
     return MobileNo; 
    } 

    public void setMobileNo(String mobileNo) { 
     MobileNo = mobileNo; 
    } 

    public String getRelation() { 
     return Relation; 
    } 

    public void setRelation(String relation) { 
     Relation = relation; 
    } 

    @Override 
    public String toString() { 

     return "\nRegistration No\t: " + getID() + "\n\nName\t\t\t\t\t\t\t: " + getName() + "\n\nFather Name\t\t\t: " + getFName() + "\n\nClass\t\t\t\t\t\t\t: " 
       + getCurrentClass() + "\n\nCity\t\t\t\t\t\t\t\t: Islamabad" + "\n\nAdress\t\t\t\t\t\t: Islamabad"; 

    } 

} 

답변

8

한 가지를 수행하고보다 라인 위의

에서

public class Home extends Activity implements Serializable 

제거 implements Serializable을 시도하고 추가

,
public class SettrGettr implements Serializable{ 
int ID; 
String Name = ""; 
String FName = ""; 
String Class = ""; 
String UserName = ""; 
String Password = ""; 
String DOB = ""; 
String MobileNo = ""; 
String Relation = ""; 
ArrayList<SettrGettr> msttrList; 

public ArrayList<SettrGettr> getMsttrList() { 
    return msttrList; 
} 

public void setMsttrList(ArrayList<SettrGettr> msttrList) { 
    this.msttrList = msttrList; 
} 

public int getID() { 
    return ID; 
} 

public void setID(int iD) { 
    ID = iD; 
} 

public String getName() { 
    return Name; 
} 

public void setName(String name) { 
    Name = name; 
} 

public String getFName() { 
    return FName; 
} 

public void setFName(String fName) { 
    FName = fName; 
} 

public String getCurrentClass() { 
    return Class; 
} 

public void setClass(String class1) { 
    Class = class1; 
} 

public String getUserName() { 
    return UserName; 
} 

public void setUserName(String userName) { 
    UserName = userName; 
} 

public String getPassword() { 
    return Password; 
} 

public void setPassword(String password) { 
    Password = password; 
} 

public String getDOB() { 
    return DOB; 
} 

public void setDOB(String dOB) { 
    DOB = dOB; 
} 

public String getMobileNo() { 
    return MobileNo; 
} 

public void setMobileNo(String mobileNo) { 
    MobileNo = mobileNo; 
} 

public String getRelation() { 
    return Relation; 
} 

public void setRelation(String relation) { 
    Relation = relation; 
} 

@Override 
public String toString() { 

    return "\nRegistration No\t: " + getID() + "\n\nName\t\t\t\t\t\t\t: " + getName() + "\n\nFather Name\t\t\t: " + getFName() + "\n\nClass\t\t\t\t\t\t\t: " 
      + getCurrentClass() + "\n\nCity\t\t\t\t\t\t\t\t: Islamabad" + "\n\nAdress\t\t\t\t\t\t: Islamabad"; 

} 

} 

설명 :

당신이 번들을 통해 당신이 직렬화 가능 인터페이스를 구현해야한다 전달하는 값을 직렬화 무언가를 전달하고 있습니다.

하지만 값을 전달하는 곳에서 Serializable 인터페이스를 구현해야한다.

+0

이미 구현 된 Home 클래스에 값을 전달합니다. Serializable 인터페이스 –

관련 문제