2010-11-15 58 views
6

Có thể thêm nội dung nào đó vào danh sách các mục hiển thị khi người dùng nhấn và giữ trên bất kỳ Chỉnh sửa văn bản nào không? (Cắt, sao chép dán, chọn văn bản, chọn tất cả, phương thức nhập) Tôi muốn thêm một tùy chọn để điều này sẽ quét mã QR và dán kết quả vào Chỉnh sửa văn bản. Tôi nghĩ rằng điều này sẽ không khó để có được hành vi này từ Nội dung chỉnh sửa mà tôi đưa vào ứng dụng của riêng tôi, nhưng tôi muốn thêm tùy chọn này vào bất kỳ Chỉnh sửa văn bản nào bên trong bất kỳ ứng dụng nào trên điện thoại của tôi. Là một cái gì đó như thế này có thể, nếu như vậy bất cứ ai có thể chỉ cho tôi đi đúng hướng?Android Nhấn và giữ hành vi Chỉnh sửa văn bản

Chỉnh sửa 150 tiền thưởng: Tôi đang tìm cách thêm một mục vào hộp thoại bật lên EditText khi được nhấn lâu. Tôi muốn tìm kiếm một cách để làm cho hệ thống thay đổi này rộng, không chỉ trong bối cảnh của 1 ứng dụng.

+0

bạn đã bao giờ tìm hiểu cách làm rộng hệ thống này chưa? Tôi đang cố gắng tìm ra cách để làm điều đó với ít thành công. – Silvae

+3

Không, không bao giờ đi qua một cách. Ý tưởng hay nhất tôi đã tạo ra là ứng dụng thay thế bàn phím có thể có nút quét trên đó. – FoamyGuy

Trả lời

5

Thats không thể, như là menu ngữ cảnh được phổ biến bởi các ứng dụng bản thân và không phải bởi hệ thống. Bạn không thể buộc các ứng dụng khác có một mục ngữ cảnh mà chúng có thể không sử dụng trong cuộc đời của chúng. Bạn có thể ít nhất có tính năng trong các ứng dụng nhận thức được ứng dụng của bạn.

Tạo một hoạt động chỉ điền và xử lý các mục menu chung của bạn. Các ứng dụng khác có thể sử dụng tính năng này bằng cách mở rộng hoạt động của bạn. Nhưng điều này cũng sẽ tạo ra vấn đề, vì các ứng dụng khác sẽ có một sự phụ thuộc khó khăn vào ứng dụng của bạn. Vì vậy, nếu ứng dụng của bạn không được cài đặt trong hệ thống đó thì ứng dụng khác sẽ không hoạt động. Ngoài ra không có cách nào để chỉ ra sự phụ thuộc này trong tệp kê khai để ứng dụng phụ thuộc bị ẩn trên thị trường nếu ứng dụng của bạn chưa được cài đặt.

Tôi chắc chắn đây không phải là câu trả lời bạn đang tìm kiếm, nhưng thực đơn ngữ cảnh được tạo ra theo thiết kế.

1

Có thể thêm nội dung nào đó vào danh sách các mục trên LongClick của EditText.

Để đưa bạn đi đúng hướng, tôi đăng một số đoạn mã.

Trong main.xml làm điều gì đó như

<?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> 

Sau đó trong Hoạt động chính của bạn, làm một cái gì đó giống như

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; 
     } 
    }); 
} 
} 

Hy vọng nó giúp

3

Có 2 cách: 1 trong những mô tả bởi Shahab. Thứ hai là đơn giản hơn. Bạn cần phải chỉ ghi đè phương pháp tiêu chuẩn hoạt động của bạn, như:

@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); 
} 

Sau đó bạn sẽ phải trên báo chí dài popup menu ngữ cảnh

+0

Tôi nghĩ điều này gần hơn với những gì tôi đang tìm kiếm. Nhưng tôi không tìm cách làm công việc này trong một trong các ứng dụng của tôi. Tôi muốn nó được hệ thống rộng bất cứ khi nào tôi dài bấm vào bất kỳ chỉnh sửa văn bản trong bất kỳ ứng dụng tôi muốn thêm một tùy chọn cho trình đơn bật lên. Có thể làm điều gì đó giống như hệ thống này rộng không? – FoamyGuy

+0

Điều đó là không thể, vì trình đơn ngữ cảnh được các ứng dụng tự điền và không phải bởi hệ thống. Bạn không thể buộc các ứng dụng khác có một mục ngữ cảnh mà họ có thể không cần. Bạn có thể ít nhất có tính năng trong các ứng dụng nhận thức được ứng dụng của bạn. tạo một thư viện có hoạt động điền các mục menu của bạn. Các ứng dụng khác có thể sử dụng tính năng này bằng cách mở rộng hoạt động của bạn. – Ronnie

+0

@ userSeven7s: Tôi sẽ tranh luận.Nếu bạn sẽ có một hoạt động gốc là cha mẹ cho tất cả các hoạt động của ứng dụng - bạn có thể ghi đè lênCreatContextMenu theo cách tôi đã mô tả ở trên - vì vậy bất cứ khi nào người dùng nhấn lâu sẽ có menu ngữ cảnh, huh? – barmaley

Các vấn đề liên quan