2010-10-06

Gar nicht verklemmt – der ClipboardManager

Das Konzept einer systemweiten Zwischenablage findet sich in vielen Betriebssystemen, so natürlich auch in Android. In diesem Beitrag zeige ich Ihnen, wie leicht sich der ClipboardManager in eigenen Anwendungen einsetzen lässt. Hier zunächst ein Screenshot meines Demos:
Screenshot der Demoanwendung
Screenshot der Demoanwendung
Nachdem Sie im Eingabefeld einen beliebigen Text eingetippt und Teile des Textes oder den ganzen Text markiert haben, öffnen Sie durch Tippen und Halten ein systemweites Popup-Menü.
Popupmenü zum Übernehmen von Text
Popupmenü zum Übernehmen von Text
Mit Ausschneiden oder Kopieren wird der markierte Text in die Zwischenablage befördert.
Die Schaltfläche Klick mich! holt sich den aktuellen Text aus der Zwischenablage, wandelt ihn in Großbuchstaben um und setzt das Ergebnis als Text des Eingabefeldes.
Und so sieht das entsprechende Programm aus:

package com.thomaskuenneth.codesnippets;

import android.app.Activity;
import android.os.Bundle;
import android.text.ClipboardManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

  private EditText field;
  private Button button;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    field = (EditText) findViewById(R.id.field);
    button = (Button) findViewById(R.id.button);
   
    final ClipboardManager manager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
   
    button.setOnClickListener(new OnClickListener() {
     
      @Override
      public void onClick(View v) {
        CharSequence s = manager.getText();
        if (s != null) {
          String newString = s.toString().toUpperCase();
          manager.setText(newString);
          field.selectAll();
          field.setText(manager.getText());
        }
      }
    });
  }
}
Java2html

Einfach, oder? Haben Sie Fragen dazu? Schreiben Sie mir…

No comments:

Post a Comment