Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cross App Drag and Drop
Search
funnelbit
March 30, 2016
Technology
0
670
Cross App Drag and Drop
funnelbit
March 30, 2016
Tweet
Share
More Decks by funnelbit
See All by funnelbit
Hatena Engineer Seminar #9
funnelbit
5
7.2k
droidkaigi-2017-renovation
funnelbit
10
11k
Dart
funnelbit
0
250
BottomBarAndSnackBar
funnelbit
0
480
Dagger2 Optional bindings
funnelbit
0
560
WearableRecyclerView
funnelbit
1
790
QucikSettingsTileAPI
funnelbit
0
350
Mobile Vision
funnelbit
0
450
AwarenessAPI
funnelbit
0
140
Other Decks in Technology
See All in Technology
コドモンのQAの今までとこれから -XPによる成長と見えてきた課題-
masasuna
0
140
OPENLOGI Company Profile for engineer
hr01
1
23k
お問い合わせ対応の改善取り組みとその進め方
masartz
1
560
17年のQA経験が導いたスクラムマスターへの道 / 17 Years in QA to Scrum Master
toma_sm
0
490
開発現場とセキュリティ担当をつなぐ脅威モデリング
cloudace
0
130
Agile TPIを活用した品質改善事例
tomasagi
0
550
AWS CDK コントリビュート はじめの一歩
yendoooo
1
130
LINEギフトのLINEミニアプリアクセシビリティ改善事例
lycorptech_jp
PRO
0
320
10分でわかるfreeeのQA
freee
1
11k
Amazon Q Developer 他⽣成AIと⽐較してみた
takano0131
1
140
マルチアカウント管理で必須!AWS Organizationsの機能とユースケース解説
nrinetcom
PRO
1
120
Cloud Native PG 使ってみて気づいたことと最新機能の紹介 - 第52回PostgreSQLアンカンファレンス
seinoyu
2
250
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
102
19k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
8
720
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
118
51k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
490
Site-Speed That Sticks
csswizardry
4
460
Navigating Team Friction
lara
184
15k
We Have a Design System, Now What?
morganepeng
51
7.5k
GraphQLとの向き合い方2022年版
quramy
45
14k
Docker and Python
trallard
44
3.3k
Building Applications with DynamoDB
mza
94
6.3k
For a Future-Friendly Web
brad_frost
176
9.6k
Transcript
$SPTT"QQ%SBH "OE%SPQ JEGVOOFMCJU
ࣗݾհ w ଜɹྋ w ͯͳJEGVOOFMCJU w 5XJUUFSJEFYQFSPQFSP
None
"OESPJE ͯͳϒοΫϚʔΫ
"OESPJE/1SFWJFX ग़·ͨ͠Ͷ
.VMUJ8JOEPX4VQQPSU
ΞϓϦؒͷ %SBHˍ%SPQΛαϙʔτ w 7JFXΫϥε͕֦ு͞Εαϙʔτ͞Εͨ w ҟͳΔ8JOEPXؒΛ%SBHˍ%SPQͰ͖Δ w ͨͱ͑ͦΕ͕ผΞϓϦͰ͋ͬͯ
ΞϓϦؒͷ %SBHˍ%SPQΛαϙʔτ w ͍ํ͜Ε·Ͱͷ%SBHˍ%SPQͱ͋Μ·ΓมΘ Βͳ͍ w Χॴ৽͍͠ϞϊΛ͏
TUBSU%SBH"OE%SPQ w ESBHˍESPQͷૢ࡞͕։࢝͞ΕΔ w TUBSU%SBH ඇਪʹ textView.startDragAndDrop(clipData, new MyDragShadowBuilder(view), null,
View.DRAG_FLAG_GLOBAL);
DBODFM%SBH"OE%SPQ w %SBHΠϕϯτΛதஅͰ͖Δ w %SBHૢ࡞Λ։࢝ͨ͠ଆͷΈ͕ݺΔ textView.cancelDragAndDrop();
VQEBUF%SBH4IBEPX w %SBHதͷӨΛஔ͖͑Δ͜ͱ͕ग़དྷΔ w %SBHૢ࡞Λ։࢝ͨ͠ଆͷΈ͕ݺΔ textView.updateDragShadow( new MyDragShadowBuilder(view));
%3"(@'-"(@(-0#"- w 8JOEPXΛ͑ͯͷ%SBHΛࢦఆ͢Δͱ͖ʹ͏ View.DRAG_FLAG_GLOBAL; View.DRAG_FLAG_GLOBAL_URI_READ; View.DRAG_FLAG_GLOBAL_URI_WRITE; …
w BOESPJEWJFX%SPQ1FSNJTTJPOT w SFRVFTU%SPQ1FSNJTTJPOT %SPQ1FSNJTTJPOT
ૹΔଆ ClipData.Item item = new ClipData.Item("ςΩετ"); String[] mimeType =
new String[1]; mimeType[0] = ClipDescription.MIMETYPE_TEXT_PLANE; ClipData clipData = new ClipData( new ClipDescription("text", mimeType), item); textView.startDragAndDrop(clipData, new MyDragShadowBuilder(view), null, View.DRAG_FLAG_GLOBAL);
Β͏ଆ root.setOnDragListener(new View.OnDragListener() { @Override public boolean onDrag(View view, DragEvent
dragEvent) { if (dragEvent.getAction() == DragEvent.ACTION_DROP) { String item = dragEvent.getClipData().getItemAt(0).getUri(); Log.e("text", item.toString()); } return true; } });
σϞ
ॴײ w ؆୯ʹσʔλͤΕΔͷྑͦ͞͏ w ͨͩ͠.VMUJ8JOEPXͷ͍উखʹΑΔ w ߟ͑Δࣄ૿͑ͨ w Ͳͷ.*.&5:1&·ͰରԠ͢Δͷ͔ɺ͠ͳ͍߹Ͳ͏͢Δ ͷ͔
w %SBHதͷ6* w ͍ͭͰ%SBHΠϕϯτ͕ೖͬͯ͘Δͱҙࣝ͢Δ
͋Γ͕ͱ͏͍͟͝·͠ ͨ