2011-05-02 73 views
3

我是新來的android和Java。我想要做一個onClick方法攜帶一個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); 
     } 
     }; 
    } 

,但它仍然包含錯誤,任何人可以解決一下嗎?

後來我想的方法設置爲一個ImageView的,它看起來或多或少像這樣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)); 

當你點擊image1將開始與上面設置的randomIndexProjectDetail活動這種方式。

如果您想要明確啓動ProjectDetails活動(沒有任何用戶交互操作(如點擊)),則根本不需要OnClickListener

+1

工程就像一個魅力!非常感謝你!! :) – hectichavana 2011-05-02 11:52:35

+0

我很高興你做到了!快樂編碼:) – rekaszeru 2011-05-02 11:57:26

+2

正是我需要的應用程序,我正在寫。謝謝! – Utoxin 2012-03-08 04:58:55