2014-09-19 2 views
1


나는 사용자가 Dialog에 이름을 입력 할 수있는 액티비티를 가지고있다.
입력 된 Name 및 Edittext가있는 textview가 포함 된 'BoardElemnt'-Object (선형 클래스를 확장하는 자체 클래스)가 동적으로 활동에 추가됩니다. 사용자는 원하는만큼 자주이 작업을 수행 할 수 있습니다.

사용자가 이러한 BoardElement를 오래 클릭하면이 BoardElement를 편집할지 아니면 삭제 할지를 선택할 수 있습니다.
이 BoardElement를 편집하려면 사용자가이 특정 BoardElement의 일부 내용을 편집 할 수있는 곳에 새 Activity가 표시되어야합니다. 내 문제는,이 BoardElement 객체를 'EditActivity'에 전달할 수 없다는 것입니다.

내 BoardElement 등급 : LinearLayout을 다른 Activity로 확장하는 커스텀 객체 전달하기



public class BoardElement extends LinearLayout implements TextWatcher{ 

private static Context context; 
private RelativeLayout parentLayout ; 
private LinearLayout fBoard ; 
private TextView txtOutput ; 
private EditText editBudget ; 
private String fName; 
private TextView txtfName= new TextView(getContext()) ; 
private EditText editBetrag = new EditText(getContext()) ; 


///////////////////////////////////////// 
// 
// This Data can be Edited in the EditActivity 
// 

private String fotoPath ; 
private String note ; 
private String name ; 
private String category ; 
private String store ; 
private String measures ; 


// 
// 
///////////////////////////////////////// 

/** 
* 
* @param context 
* @param _parentLayout 
* @param _furnitureName 
*/ 
public BoardElement(Context _context, RelativeLayout _parentLayout, String _fName){ 
    super(_context); 

    context = _context; 
    parentLayout = _parentLayout ; 
    fName= _fName; 


    category = fName; 



    LinearLayout.LayoutParams mparams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
    mparams.setMargins(0, 0, 0, 10) ; 
    this.setLayoutParams(mparams) ; 
    this.setOrientation(LinearLayout.HORIZONTAL) ; 
    this.setBackgroundResource(R.drawable.board_element) ; 



    LinearLayout.LayoutParams txtParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.MATCH_PARENT) ; 
    txtParams.gravity = Gravity.CENTER ; 
    txtParams.weight = 1.0f; 
    txtFurnitureName.setLayoutParams(txtParams) ; 
    txtFurnitureName.setBackgroundResource(R.drawable.txt_fName) ; 
    txtFurnitureName.setText(this.fName) ; 
    txtFurnitureName.setTextColor(getResources().getColor(R.color.white)) ; 
    txtFurnitureName.setTextSize(20) ; 
    this.addView(txtfName) ; 





    editBetrag.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL) ; 
    editBetrag.setTextColor(getResources().getColor(R.color.white)) ; 
    editBetrag.setGravity(Gravity.RIGHT) ; 
    editBetrag.setBackgroundResource(R.drawable.input_field); 
    editBetrag.setFilters(new InputFilter[] {new InputFilter.LengthFilter(9)}) ; 
    this.addView(editBetrag) ; 
    editBetrag.addTextChangedListener(this) ;  


} 
//////////////////////////////// 
// 
// getters and setters 

// ... 

내가 성공하지 SerializableParcelable과 다른 활동에 전달했습니다. 당신은 두 개의 서로 다른 것들로 클래스를 분리해서 할 수

인사말

답변

0

... 난 그냥 내 문자열 구성원이 Parcelable 방법과 함께 전달 얻을,하지만 난 그 구성원을 편집하지 못할. 편집 할 수있는 String 속성 (Properties.class) 만 보유하는 클래스입니다. 다른 하나는 레이아웃 (Layout.class) 만 빌드하는 것입니다. 이 방법을 사용하면 Properties.class을 인 텐트를 통해 EditActivity로 보내고이를 팽창시킬 때 Layout.class으로 전달하면됩니다. Properties.class에 대한 Parcelable 인터페이스를 구현하는 것은 쉬워야합니다.

관련 문제