2011-05-02 6 views
3

저는 android and Java를 처음 사용합니다. 내가 int로 인수를 전달하는 온 클릭 방법을 만들고 싶어, 그래서이 내 시도 :Android : 인자를 전달하는 수신기 메소드를 클릭하십시오.

public void randomClick(final int randomIndex) 
    { 
     private OnClickListener top_listener = new OnClickListener() { 
     public void onClick(View v) { 
        Intent top = new Intent(Main.this, ProjectDetail.class); 
        top.putExtra("spendino.de.ProjectDetail.position", randomIndex); 
        startActivity(top); 
     } 
     }; 
    } 

하지만 여전히 오류가 있습니다, 아무도 나를 위해 그것을 해결할 수 있습니까?

나중에 내가 이미지 뷰에 방법을 설정하려면, 그것은 매우 감사이 image1.randomClick(randomIndex1);

처럼 더 많거나 적은 찾을 것입니다. 나는 모든 종류의 해결책에 열려 있습니다.

답변

8

현재 구현시 OnClickListener은보기에 구속되지 않으므로 해고 당할 수 없습니다.

당신은 당신의 자신의 (내부하지만 익명되지 수 있습니다) 클래스는 OnClickListener 인터페이스를 구현 만들어야합니다

public class RandomClickListener implements View.OnClickListener 
{ 
    private final int randomIndex; 

    public RandomClickListener(final int randomIndex) 
    { 
     this.randomIndex = randomIndex; 
    } 
    @Override 
    public void onClick(View v) 
    { 
     Intent top = new Intent(Main.this, ProjectDetail.class); 
     top.putExtra("spendino.de.ProjectDetail.position", randomIndex); 
     startActivity(top); 
    } 
} 
[...] 
image1.setOnClickListener(new RandomClickListener(randomIndex)); 

당신이 위의 설정 randomIndexProjectDetail 활동을 시작합니다 image1 클릭이 방법.

ProjectDetails 활동 (클릭과 같은 사용자 상호 작용 없음)을 명시 적으로 시작하려면 OnClickListener이 전혀 필요하지 않습니다.

+1

은 매력처럼 작동합니다. 대단히 감사합니다 !! :) – hectichavana

+0

당신이 그것을 기쁘게 생각합니다! 행복한 코딩 추가 :) – rekaszeru

+2

정확히 내가 쓰고있는 응용 프로그램에 필요한. 감사! – Utoxin

관련 문제