如何修复有关发送意图的代码?

时间:2014-03-31 06:44:59

标签: android android-intent send

我有这个代码用于选择textView并复制到剪贴板:

txt=(TextView)findViewById(R.id.textView1);
String stringYouExtracted = txt.getText().toString();
int startIndex = txt.getSelectionStart();
int endIndex = txt.getSelectionEnd();
stringYouExtracted = stringYouExtracted.substring(startIndex, endIndex);
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
clipboard.setText(stringYouExtracted);

我想放一个按钮,当我按下它,发送文本启用并运行时,我也有这个代码:

btn.setOnClickListener(new OnClickListener() {
   public void onClick(View arg0) {
      Intent sendIntent = new Intent();
      sendIntent.setAction(Intent.ACTION_SEND);
      sendIntent.putExtra(Intent.EXTRA_TEXT, stringYouExtracted);
      sendIntent.setType("text/plain");
      startActivity(sendIntent);
   }
});

但此错误出现在setOnClickListenersetOnClickListener的第3行)中:

  

不能引用在另一个方法中定义的内部类中的非final变量stringYouExtracted

SDK建议我在第一行代码的第二行之前添加final。当我这样做时,第一个代码的第5行出现另一个错误:

  

无法分配最终的局部变量stringYouExtracted。它必须为空白且不使用复合赋值

并建议我从第一行代码的第二行中删除final,我已添加它以解决上一个错误

我该怎么办?

2 个答案:

答案 0 :(得分:1)

卸下:

String stringYouExtracted = txt.getText().toString();

改变
stringYouExtracted = stringYouExtracted.substring(startIndex, endIndex);

final String stringYouExtracted = txt.getText().toString().substring(startIndex, endIndex);

答案 1 :(得分:1)

试试这个:

String value = txt.getText().toString();
int startIndex = txt.getSelectionStart();
int endIndex = txt.getSelectionEnd();
final String stringYouExtracted = value.substring(startIndex, endIndex);