java - getSystemService() 不适用于适配器类

标签 java android android-adapter android-context clipboardmanager

我试图将 onClickListener 添加到 RecyclerView 中的一个按钮,该按钮将复制一个字符串,但它说 getSystemService(CLIPBOARD_SERVICE) 不可用。

public void onBindViewHolder(ViewHolder holder, int position) {
        holder.title.setText(cardItems.get(position).title);
        holder.content.setText(cardItems.get(position).content);
        holder.copyButton.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){

                myClipboard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
                String text;
                text = EditText.getText().toString();
                myClip = ClipData.newPlainText("text", text);
                myClipboard.setPrimaryClip(myClip);

                Toast.makeText(getApplicationContext(), "Text Copied", Toast.LENGTH_SHORT).show();
            }
        });
    }

最佳答案

您需要一个 Context 才能做到这一点。执行:

...
public void onClick(View v) {
    myClipboard = (ClipboardManager) v.getContext().getSystemService(CLIPBOARD_SERVICE);
    ...
}

关于java - getSystemService() 不适用于适配器类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43256230/

相关文章:

java - Java 中的递归 Set 方法 - Perl 中的默认变量?

android - 如何在 Android 中单击 ListView 中的按钮时获取自定义对话框 Activity ?

java - 是否可以将 "tail -f"命令的输出获取到 java 程序?

android - 自动授予 Uri 权限

android - Android SDK中如何解析JSON?

android - 如何使用 Here Map for android SDK 获取经纬度?

java - 通用 ListView 适配器

android - 删除项目后 RecyclerView 不更新

java - Twitter linkify android 所有@mentions

java - 在java中执行与linux管道相同的操作?