2014-01-22 69 views
0

等待報告!!!我讀了關於「傳遞參數與setOnClickListener」的一切,但我沒有找到解決我的問題。傳遞字符串setOnClickListener

String citazione = new String(data[position]); 
share_btn.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View v){ 
     Intent sendIntent = new Intent(); 
     sendIntent.setAction(Intent.ACTION_SEND); 
     sendIntent.putExtra(Intent.EXTRA_TEXT, citazione); 
     sendIntent.setType("text/plain"); 
     v.getContext().startActivity(Intent.createChooser(sendIntent, v.getResources().getText(R.string.send_to))); 
    } 
}); 

我應該把字符串「citazione」在6線,但因爲我在8號線使用它,我不能編輯View v。 我試過了(getContext(),startActivity()v之前)但沒有任何結果。

我該怎麼辦?

+1

運行此代碼時會發生什麼?我的意思是,什麼不適合你? – csmckelvey

回答

2

剛剛做完:

final String citazione = new String(data[position]); 
+0

OMG我愛你:* – user3223863

+1

是的,這很簡單。我建議你閱讀http://en.wikipedia.org/wiki/Final_%28Java%29中的「最終和內部類」部分。如果你想在匿名內部類中使用它們,你應該總是聲明你的變量爲final。 – nikis

0

首先我會宣佈的onClick在XML像這樣:

<Button 
... 
android:onClick="onButtonClick" 
.... 
/> 

然後我會做citazione類變量

private String citazione; 

活動中的按鈕的onClick是

public void onButtonClick(View view) { 
    //do what you want here with citazione 
}