2010-11-15 15 views
6

Kullanıcı herhangi bir Metni Düzenle düğmesine uzun süre bastığında görüntülenen öğelerin listesine bir şeyler eklemek mümkün müdür? (Kes, kopyala yapıştır, metni seç, tümünü seç, giriş yöntemi) Bir QR kodu tarayacak ve sonucu Metni Düzenle'ye yapıştıracak bir seçenek eklemek istiyorum. Bu davranışı kendi uygulamamda düzenlediğim Edit Texts'tan çıkarmak çok zor olmaz ama bu seçeneği telefonumdaki herhangi bir uygulamanın içindeki herhangi bir Edit Text'e eklemek istiyorum. Böyle bir şey mümkün mü, eğer öyleyse kimse bana doğru yönde işaret edebilir mi?Android Uzun Metin düzenleme için tıklayın davranış

150 lükünü düzenle: Uzun basıldığında EditText açılan penceresine bir öğe eklemek istiyorum. Sadece 1 uygulama bağlamında değil, bu değişim sistemini genişletmenin bir yolunu arıyorum.

+0

Bu sistemi nasıl genişleteceğinizi öğrendiniz mi? Bunu biraz başarı ile nasıl yapacağımı anlamaya çalışıyorum. – Silvae

+3

Hayır, asla bir yoldan gelmedi. En iyi fikir, üzerinde bir tarama düğmesine sahip olabilecek bir klavye değiştirme uygulaması oluşturmaktı. – FoamyGuy

cevap

5

Thats mümkün değildir üzerinde gerekecek

@Override 
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) 
{ 
     if(view.getId()==R.id.MyEditTextId) 
     { 
      menu.add(Menu.NONE, MyMenu, Menu.NONE, R.string.MyMenuText); 
     } 
     else 
      super.onCreateContextMenu(menu, view, menuInfo); 
} 

: Sen gibi, sadece aktivitenin standart yöntemini geçersiz gerekir sistem tarafından değil. Diğer uygulamaları, ömürlerinde kullanamayacakları bir içerik öğesine sahip olmaya zorlayamazsınız. En azından, uygulamanızın farkında olan uygulamalarda bu özelliğe sahip olabilirsiniz.

Yalnızca genel menü öğelerinizi dolduran ve işleyen bir etkinlik oluşturun. Diğer uygulamalar, etkinliğinizi genişleterek bu özelliği kullanabilir. Ancak, diğer uygulamalar uygulamanıza sert bir bağımlılık getireceğinden, bu da sorun yaratacaktır. Uygulamanız bu sistemde yüklü değilse, diğer uygulama çalışmayacaktır. Ayrıca, manifest dosyasında bu bağımlılığı belirtmenin bir yolu yoktur, böylece uygulamanız zaten yüklü değilse bağımlı uygulama pazarda gizlenir.

Eminim bu aradığınız cevap değil, ancak bağlam menüleri tasarım gereği yapılır.

1

Evet, LongClick of EditText öğesindeki öğeler listesine bir şeyler eklemek mümkündür.

Sizi doğru yönde koymak için bazı kod parçacıklarını gönderiyorum. main.xml olarak

2 yolu vardır

public class edit extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    EditText text = (EditText)this.findViewById(R.id.textt); 
    text.setOnLongClickListener(new OnLongClickListener() { 

     @Override 
     public boolean onLongClick(View v) { 

      //ADD HERE ABOUT CUT COPY PASTE 
      // TODO Auto-generated method stub 
      return false; 
     } 
    }); 
} 
} 

o

3

yardımcı Umut böyle bir şey yapmak, ana Faaliyette Bundan sonra

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
> 

<EditText 
       android:id="@+id/textt" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:text="@string/hello" 
/> 

</LinearLayout> 

böyle bir şey yapmak: 1st bir tarif Shahab tarafından. 2. bir tanesi daha basit. içerik menüsü uygulamaları kendileri tarafından doldurulur olarak, Bundan sonra uzun basma açılan bağlam menüsünden

+0

Sanırım bu aradığım şeylere daha yakın. Ama bu çalışmayı benim uygulamalarımızdan birinde yapmak istemiyorum. Herhangi bir uygulamadaki herhangi bir Edit Metnine uzun süre bastığımda sistemin geniş olmasını istiyorum. Açılan menüye bir seçenek eklemek istiyorum. Bu sistem gibi bir şey yapmak mümkün mü? – FoamyGuy

+0

Bu, mümkün değil, bağlam menüsü uygulamalar tarafından değil, sistem tarafından doldurulur. Diğer uygulamaları, ihtiyaç duymayabilecek bir içerik öğesine sahip olmaya zorlayamazsınız. En azından, uygulamanızın farkında olan uygulamalarda bu özelliğe sahip olabilirsiniz. Menü öğelerinizi dolduran bir etkinliğe sahip bir kitaplık oluşturun. Diğer uygulamalar, etkinliğinizi genişleterek bu özelliği kullanabilir. – Ronnie

+0

@ userSeven7s: Tartışırım.Eğer tüm uygulamaların aktiviteleri için ebeveyn olan bir root Aktiviteniz varsa, yukarıda tarif ettiğim şekilde onCreatContextMenu'yu geçersiz kılabilirsiniz - böylece kullanıcı uzun basında içerik menüsü olacaksa, ha? – barmaley

İlgili konular