1

Ich habe eine RecyclerView und in jeder Zeile habe ich eine CardView. Ich habe drei TextView s. Ich möchte den Text von einer der TextView s innerhalb der CardView während der onClick Ereignis kopieren. Das habe ich bisher:Kopieren von Text aus CardView in die Zwischenablage

public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 

    public TextView ora, onoma_xristi, minima; 
    public CardView card; 

    public ViewHolder(View view) { 
     super(view); 

     card = (CardView) view.findViewById(R.id.single_row_cardview); 
     ora = (TextView) view.findViewById(R.id.ora); 
     onoma_xristi = (TextView) view.findViewById(R.id.onoma_xristi); 
     minima = (TextView) view.findViewById(R.id.minima); 

     view.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 

     ClipboardManager myClickboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
     ClipData myClip = ClipData.newPlainText("text", v.minima.getText()); 
     myClickboard.setPrimaryClip(myClip); 

    } 
} 

Ist der obige Code korrekt? Wenn nicht, irgendwelche Vorschläge, warum es nicht funktioniert?

+0

Sind Sie Fehler bekommen? Bitte geben Sie an, was das Problem ist und was Sie erreichen möchten, indem Sie es kopieren. Weil, wenn, was Sie wollen, ist der Text der ClipboardManager ist völlig unnötig – Chisko

+0

Ich habe eine RecyclerView und in jedem CardView habe ich drei TextViews. Ich möchte, wenn ich auf CardView klicke, um den Inhalt eines TextView in die Zwischenablage zu kopieren. Die Fehler, die ich bekomme (es ist alles rot) ist in getSystemService (CLIPBOARD_SERVICE) – giannisj5

Antwort

2

fand ich die Lösung:

ClipboardManager myClickboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); 
     ClipData myClip = ClipData.newPlainText("text", minima.getText().toString()); 
     myClickboard.setPrimaryClip(myClip); 
     Toast.makeText(v.getContext(), v.getResources().getString(R.string.antigrafike), Toast.LENGTH_SHORT).show(); 
+0

Ok. Es sieht also so aus, als hätten Sie versucht, in einer anderen Klasse auf die Zwischenablage zuzugreifen. Das ist wahrscheinlich der Grund, warum es für dich nicht funktionierte. – Razor

0

Angenommen, dass die Klickfunktion funktioniert, ist die Implementierung der Zwischenablage korrekt. Sie vermissen eine kleine Sache:

ClipData myClip = ClipData.newPlainText("text", v.minima.getText().toString()); 

Ich glaube, Sie die v.minima.getText().toString() Anweisung vergessen. getText() allein gibt keinen String Wert zurück. Ich bin mir ziemlich sicher, dass es einen CharSequence[] Wert nach this zurückgeben wird. Lass mich wissen, wie du gehst.

+0

Danke, dass ich das tat, aber immer noch habe ich Fehler in getSystemService (CLIPBOARD_SERVICE) – giannisj5