Android mesajlaşmasında, bağlantıyı tıklattığınızda, Kamera, Galeri, Ses, Video vb. Gibi içerik sağlayıcıların listesini açın.. Aynı listeyi açmak için tıklayın? Bunun gibi : Kullanabileceğin düşünüyorum Medya eki listesi nasıl açılır?
cevap
Ne istediğiniz aslında biraz karmaşık: Eğer Aktivite böyle bir yöntemi çağırmak gerekir
private void showAddAttachmentDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.ic_dialog_attach);
builder.setTitle(R.string.add_attachment);
AttachmentTypeSelectorAdapter mAttachmentTypeSelectorAdapter = new AttachmentTypeSelectorAdapter(this, AttachmentTypeSelectorAdapter.MODE_WITH_SLIDESHOW);
}
builder.setAdapter(mAttachmentTypeSelectorAdapter, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
addAttachment(mAttachmentTypeSelectorAdapter.buttonToCommand(which), replace);
dialog.dismiss();
}
});
builder.show();
}
Iletişim kutusunu göstermek için
ve bu seçim bağdaştırıcısının gerçek uygulamasıdır.
package com.android.mms.ui;
import com.android.mms.MmsConfig;
import com.android.mms.R;
import android.content.Context;
import java.util.ArrayList;
import java.util.List;
/**
* An adapter to store icons and strings for attachment type list.
*/
public class AttachmentTypeSelectorAdapter extends IconListAdapter {
public final static int MODE_WITH_SLIDESHOW = 0;
public final static int MODE_WITHOUT_SLIDESHOW = 1;
public final static int ADD_IMAGE = 0;
public final static int TAKE_PICTURE = 1;
public final static int ADD_VIDEO = 2;
public final static int RECORD_VIDEO = 3;
public final static int ADD_SOUND = 4;
public final static int RECORD_SOUND = 5;
public final static int ADD_SLIDESHOW = 6;
public AttachmentTypeSelectorAdapter(Context context, int mode) {
super(context, getData(mode, context));
}
public int buttonToCommand(int whichButton) {
AttachmentListItem item = (AttachmentListItem)getItem(whichButton);
return item.getCommand();
}
protected static List<IconListItem> getData(int mode, Context context) {
List<IconListItem> data = new ArrayList<IconListItem>(7);
addItem(data, context.getString(R.string.attach_image),
R.drawable.ic_launcher_gallery, ADD_IMAGE);
addItem(data, context.getString(R.string.attach_take_photo),
R.drawable.ic_launcher_camera, TAKE_PICTURE);
addItem(data, context.getString(R.string.attach_video),
R.drawable.ic_launcher_video_player, ADD_VIDEO);
addItem(data, context.getString(R.string.attach_record_video),
R.drawable.ic_launcher_camera_record, RECORD_VIDEO);
if (MmsConfig.getAllowAttachAudio()) {
addItem(data, context.getString(R.string.attach_sound),
R.drawable.ic_launcher_musicplayer_2, ADD_SOUND);
}
addItem(data, context.getString(R.string.attach_record_sound),
R.drawable.ic_launcher_record_audio, RECORD_SOUND);
if (mode == MODE_WITH_SLIDESHOW) {
addItem(data, context.getString(R.string.attach_slideshow),
R.drawable.ic_launcher_slideshow_add_sms, ADD_SLIDESHOW);
}
return data;
}
protected static void addItem(List<IconListItem> data, String title,
int resource, int command) {
AttachmentListItem temp = new AttachmentListItem(title, resource, command);
data.add(temp);
}
public static class AttachmentListItem extends IconListAdapter.IconListItem {
private int mCommand;
public AttachmentListItem(String title, int resource, int command) {
super(title, resource);
mCommand = command;
}
public int getCommand() {
return mCommand;
}
}
}
Bu ileti iletişim it (yukarıdaki sınıf MMS uygulamasından ise) yapar ve https://android.googlesource.com/platform/packages/apps/Mms/+/master/src/com/android/mms/ui gidip ComposeMessageActivity en showAddAttachmentDialog
yöntem ve AttachmentTypeSelectorAdapter
bakarak tüm kanlı detayları görebilirsiniz gerçekte nasıl olduğunu.
Intent intent = new Intent();
//intent.setType("image/\*");
intent.setType("\*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), SELECT_PICTURE);
bu
Intent intent = new Intent();
intent.setType("*/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 0);
Yanıt için teşekkürler, bunu denedim, ancak bana yukarıdaki gibi bir sonuç vermiyor (sadece medya içeriği demek). – Sandy
- 1. C# Medya oynatıcımda oynatma listesi nasıl oluşturulur?
- 2. Tek bir çekimde TFS WorkItem eki nasıl açılır?
- 3. Açılır listeden kopya seçenek listesi. JQuery
- 4. Görüntü eki olarak metin eki olarak nasıl eklenir nsattributedstring
- 5. Medya birimi nasıl kontrol edilir?
- 6. medya sorguları?
- 7. Aşağı açılır oklar nasıl açılır
- 8. Açılır pencere nasıl açılır, Javascript
- 9. E-posta eki
- 10. Açılır Listesi? Benim Modeli Kodlama My görünüm sayfasında
- 11. PHPmailer ve pdf eki
- 12. Yüklü widget listesi nasıl edinilir?
- 13. iphone e-posta eki
- 14. 9 düzeltme eki degrade
- 15. * _son boş son eki
- 16. 9 düzeltme eki hatası
- 17. Python dosya eki hatası
- 18. Twitter-bootstrap "eki"
- 19. İlkbahar-hazırda eki
- 20. Ant: Kaynak eki içeren jar nasıl derlenir
- 21. Bayt dizisinden e-posta eki nasıl eklenir?
- 22. std :: vektör eki nasıl uygulanır? C++
- 23. Exoplayer'da medya kaynağını yenileyin
- 24. Açılır pencerede Google Maps bağlantıları nasıl açılır?
- 25. Bir Gezinme Çekmecesi'nde (Android'de) nasıl açılır açılır?
- 26. Açısal görünümde açılır pencerenin tamamı nasıl açılır?
- 27. Arka plan rengi nasıl açılır beyaz açılır
- 28. Soundpool veya medya oynatıcı?
- 29. neden medya sorgusu çalışmıyor
- 30. Medya hacmi değişikliği bildirimleri nasıl alınır?
Yalnızca resim galerisi açılacaktır. – Sandy