2011-04-28 5 views
1

프로그래밍 방식으로 버튼에 추가 정보를 첨부하려면 어떻게해야합니까? 텍스트를 변경하려면 mButton.setText ("new text")를 사용할 수 있지만 버튼을 클릭하면 해당 추가 필드를 잡고 데이터를 사용할 수 있도록 몇 개의 필드를 추가 할 수 있기를 원합니다. 내가 어떻게 할 수 있니?버튼을 사용하여 추가 정보 저장

답변

7

사용 View.setTag (INT 키, 개체 태그)를 필요로하는 필드와 메소드를 추가 할 수 있습니다.

getTag (int key)를 사용하여 나중에 검색 할 수 있습니다. 당신의 XML로

:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <item type="id" 
     name="string_key" /> 
    <item type="id" 
     name="boolean_key" /> 
</resources> 

코드에서 :

//I'd like to store String s and Boolean b in the button. 
button.setTag(R.id.string_key, s); 
button.setTag(R.id.boolean_key, b); 

//Now, I'd like to retrieve the data in new fields. 
String new_s = (String) button.getTag(R.id.string_key); 
Boolean new_b = (Boolean) button.getTag(R.id.boolean_key); 
+0

내가 그걸 시도하면 IllegalArgumentStatement가 나온다. "키는 응용 프로그램 특정 리소스 ID 여야합니다." – Roger

+0

내 실수! 이 ID는 고유한지 확인하기 위해 xml에서 선언해야합니다. 자세한 내용은 http://developer.android.com/guide/topics/resources/more-resources.html#Id "를 참조하십시오. – Cephron

+0

또한 하나의 필드 만 저장해야하는 경우 setTag (Object 태그) 및 getTag() -하지만 여러 필드를 저장하려는 것 같습니다. ID가 필요한 이유입니다. – Cephron

1

당신은 항상 버튼 클래스를 확장하고

+0

제발하지 마세요. 또는 적어도 내가 코드를 상속받지 못하게하고 유지 관리해야합니다. –

0

당신은 태그 속성을 사용할 수 있습니다. 문자열을 지정하십시오 [두 개 이상의 값에 파이프 문자 (|)를 사용하고 나중에 나눠] 또는 객체를 지정할 수 있습니다.