2011-07-05 2 views
0

내가 모델 클래스 정의 내 활동에onClick (View v) 함수 내 객체에 액세스하는 방법은 무엇입니까?

public class MyObject { 
    ... 
} 

를, I는 서비스 계층에서이 개체를 가져옵니다. 나는 텍스트 뷰setOnClickListener를 설정하면 모든 것이이 시점에서 잘 작동, 내 유일한 질문은, 활동에, 어떻게 인 myObject에 액세스 할 수 있습니까? 내 말은 다음 코드에 표시됩니다 : 위의 코드에서

//my custom object 
MyObject obj = SERVICE.getObject(); 

TextView tx = new TextView(this); 
tx.setText("Click me"); 
tx.setOnClickListener(
    new OnClickListener(){ 

      @Override 
      public void onClick(View v){ 

       //how to access obj here? 
      } 
     } 
); 

, obj 기능 onClick(View v) 안에 내가 , 어떻게 onClick(View v) 내부 obj에 액세스 할 수 그것을하지 액세스를 제거 할 수 있습니까?

+0

는 어느 쪽이든 당신이 마지막으로 또는 글로벌 – ingsaurabh

답변

1

당신은 ID가있는 경우, 태그 필드에 해당 ID를 설정할 수 있으며, 온 클릭에 검색 : 잠재적으로 전체를 저장할 수 있도록

tx.setTag(obj.getId()); 
tx.setOnClickListener(
    new OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      Long id = v.getTag(); 
     } 
    } 
); 

당신은 임의의 객체를 저장할 수 있습니다 거기에있는 개체.

+0

이것은 내가 찾고있는 것이다. 고맙습니다! – Leem

0

개체를 최종으로 설정하면 액세스 할 수 있습니다.

2

MyObject objfinal으로 표시하십시오.

final MyObject obj = SERVICE.getObject(); 

TextView tx = new TextView(this); 
tx.setText("Click me"); 
tx.setOnClickListener(
    new OnClickListener(){ 

      @Override 
      public void onClick(View v){ 
       obj.doStuff(); //this should work now... 
      } 
     } 
); 
+0

링크로 myObj로를 선언해야 지금 죽은 – topwik

+0

@towpse 감사, 제거 링크입니다. –

0

이 간단한 방법 :

class testClass 
{ 
    testClass obj; 
    public testClass() { 
     obj=this; 
    } 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     TextView tx = new TextView(this); 
     tx.setText("Click me"); 
     tx.setOnClickListener(
      new OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        obj.doStuff(); //this should work now... 
       } 
      } 
     ); 
    } 
} 
관련 문제