2014-01-22 70 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 
}