Autore Topic: Creare un'app che copia e incolla  (Letto 540 volte)

Offline Frost

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Android 5.0.1
Creare un'app che copia e incolla
« il: 29 Giugno 2015, 18:34:28 CEST »
0
Salve a tutti, premetto che ho iniziato a studiare l'ambiente android qualche mese fa. Allora io avrei un problema nel creare questa app, in poche parole essa dovrà ogni volta  salvare il testo copiato dall'utente (quindi già copiato nella clipboard di android) in una listview, quindi come se ogni testo copiato fosse un vettore string[]. In tutto questo il problema è che non so cosa fare in modo specifico,ho già fatto qualche prova da me leggendo le varie informazioni da https://developer.android.com/guide/topics/text/copy-paste.html e altri forum ma senza arrivare ad una soluzione definitiva.

P.S. non so se il post sia off-topic ma nel caso lo fosse vi pregherei di non flagellarmi, grazie a tutti per l'aiuto.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Creare un'app che copia e incolla
« Risposta #1 il: 30 Giugno 2015, 07:55:49 CEST »
0
Ma qual'è di preciso il problema? Hai scritto del codice o non sai nemmeno da dove iniziare a scriverlo?

Il link che hai indicato porta ad una guida abbastanza chiara di come fare copy/paste di testo, però dipende da quanto codice hai già scritto e dove ti sei arenato. Puoi essere più specifico?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Frost

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Android 5.0.1
Re:Creare un'app che copia e incolla
« Risposta #2 il: 30 Giugno 2015, 11:40:16 CEST »
0
Mi scuso per non essere stato chiaro.
Non è che non so da dove iniziare perchè riuscirei benissimo a fare un'applicazione che abbia per esempio due bottoni dove magari uno di essi copia il testo (scritto dall'utente nell'app) e l'altro lo incolla sotto ma non è quello che cerco io. Per intenderci l'applicazione dovrebbe "connettersi" al servizio Clipboard di Android ogni qualvolta l'utente copi qualcosa nella Clipboard(quindi anche fuori dalla mia applicazione) e da li salvare il testo nell'applicazione (automaticamente, senza interazione dell'utente con essa). Lo so che sarebbe meglio mettere del codice in modo che mi possiate aiutare meglio ma il punto è proprio questo, non so che codice scrivere in questo caso anche perchè sono agli inizi, quindi vi chiedo scusa. Forse per ora è troppo complicata per me(?). Grazie in anticipo.
« Ultima modifica: 30 Giugno 2015, 11:51:45 CEST da Frost »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Creare un'app che copia e incolla
« Risposta #3 il: 30 Giugno 2015, 12:14:09 CEST »
0
Ok, ho cercato su google "android clipboard listener" e ho trovato in prima pagina questo esempio da cui potresti partire: si tratta di un Service che installa un listener dei cambiamenti alla Clipboard, e salva su file il testo.

android - Permanently listen to Clipboard changes - Stack Overflow

Codice (Java): [Seleziona]
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Calendar;

import android.app.Service;
import android.content.ClipData;
import android.content.ClipDescription;
import android.content.ClipboardManager;
import android.content.ClipboardManager.OnPrimaryClipChangedListener;
import android.content.Intent;
import android.os.IBinder;

public class CBWatcherService extends Service {

    private final String tag = "[[ClipboardWatcherService]] ";  
    private OnPrimaryClipChangedListener listener = new OnPrimaryClipChangedListener(){
        public void onPrimaryClipChanged() {performClipboardCheck();}};

    @Override
    public void onCreate(){
        ((ClipboardManager) getSystemService(CLIPBOARD_SERVICE)).addPrimaryClipChangedListener(listener);   }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        File folder = new File(ClipboardCacheFolderPath);
        // ClipboardCacheFolderPath is a predefined constant with the path
        // where the clipboard contents will be written

        if (!folder.exists()) {folder.mkdir();}
        return START_STICKY;}

    @Override
    public IBinder onBind(Intent intent) {return null;}

    private void performClipboardCheck() {
        ClipboardManager cb = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
        if (cb.hasPrimaryClip()) {
            ClipData cd = cb.getPrimaryClip();
            if (cd.getDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)){
                try {
                    File folder = new File(ClipboardCacheFolderPath);
                    if (!folder.exists()) {folder.mkdir();}
                    Calendar cal = Calendar.getInstance();
                    String newCachedClip = cal.get(Calendar.YEAR) + "-" + cal.get(Calendar.MONTH) + "-" + cal.get(Calendar.DAY_OF_MONTH) + "-" +
                                       cal.get(Calendar.HOUR_OF_DAY) + "-" + cal.get(Calendar.MINUTE) + "-" + cal.get(Calendar.SECOND);
                    // The name of the file acts as the timestamp (ingenious, uh?)
                    File file = new File(ClipboardCacheFolderPath + newCachedClip);
                    file.createNewFile();
                    BufferedWriter bWriter = new BufferedWriter(new FileWriter(file));
                    bWriter.write((cd.getItemAt(0).getText()).toString());
                    bWriter.close();

                catch (IOException e) {e.printStackTrace();}  
            }
        }}
}
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Frost

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Android 5.0.1
Re:Creare un'app che copia e incolla
« Risposta #4 il: 30 Giugno 2015, 12:26:52 CEST »
0
Grazie mille, lo analizzo e se è quello che cerco proverò ad implementarlo nel codice con le mie personalizzazioni. Ti farò sapere. ;-)