【问题标题】:How can I fix this code about sending intent?如何修复有关发送意图的代码?
【发布时间】:2014-05-10 09:48:51
【问题描述】:

我有这个代码用于选择一个 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的第三行):

不能在不同方法中定义的内部类中引用非最终变量 stringYouExtracted

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

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

并建议我从我为解决先前错误而添加的第一行代码的第二行中删除 final

我能做什么?

【问题讨论】:

    标签: android android-intent send


    【解决方案1】:

    删除:

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

    改变

    stringYouExtracted = stringYouExtracted.substring(startIndex, endIndex);
    

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

    【讨论】:

    • 它有问题....当我按下按钮并选择一个应用程序(例如 viber)时,您会看到 viber 打开并且我从第一个代码中选择它的文本没有发送到 viber ...我该怎么办???
    • 回答“我怎样才能修复这个关于发送意图的代码?”提供了问题,我认为是的。您必须针对上述评论中提到的事情提出一个新问题。
    • excuse me ...我试图再问一个问题,但出现“您在 24 小时内只能问 6 个问题”............我可以在 8 小时后问问题......你能在这里回答吗?或将您的答案发送至 ehsanhanifezade@yahoo.com .....谢谢
    • 我可以....(stackoverflow.com/questions/22756458/…)......请回答
    【解决方案2】:

    试试这个:

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

    【讨论】:

    • 我做了,但是代码的最后一行出现了这个错误:“令牌“final”上的语法错误,无效类型“
    • 对不起,我错过了声明,请参阅编辑:final String stringYouExtracted
    • 不客气,但它有问题....当我按下按钮并选择一个应用程序(例如 viber)时,您会看到 viber 打开并且我首先选择它的文本代码没有发送到 viber ...我该怎么办???请帮帮我
    • 看这里:stackoverflow.com/questions/9948373/…也许会帮助你
    • 它也不起作用......请在这里回答我:(stackoverflow.com/questions/22756458/…
    猜你喜欢
    • 1970-01-01
    • 2020-02-05
    • 2019-05-24
    • 2015-10-02
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多