$raw_post_data = file_get_contents('php://input');
$raw_post_array = explode('&', $raw_post_data);
$myPost = array();
foreach ($raw_post_array as $keyval) {
$keyval = explode ('=', $keyval);
if (count($keyval) == 2)
$myPost[$keyval[0]] = urldecode($keyval[1]);
}
我有3张图片浏览量。当一个人进入另一个imageview时,它应该给出消息。但即使我不能放弃imageview。当我放弃时,它会回到第一位。
它无法开始行动。当我按照我的描述将图像拖放到另一个图像时,它会关闭并显示消息:
package com.example.caneraydin.myapplication;
import android.annotation.SuppressLint;
import android.content.ClipData;
import android.graphics.drawable.Drawable;
import android.media.Image;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.DragEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
public class MainActivity extends AppCompatActivity {
private ImageView img1,img2,img3;
String TAG = "Chic";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_lands);
img1 = (ImageView) findViewById(R.id.img1);
img2= (ImageView) findViewById(R.id.img2);
img3= (ImageView) findViewById(R.id.img3);
img3. setOnTouchListener(new MyTouchListener());
img2. setOnDragListener(new MyDragListener());
}
}
final class MyTouchListener implements View.OnTouchListener {String TAG = "Chic";
// Log.d(TAG,"In mytouchlistener");
public boolean onTouch(View view, MotionEvent motionEvent) {
Log.d(TAG,"In mytouchlistener");
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
Log.d(TAG,"In mytouchlistener if yes");
ClipData data = ClipData.newPlainText("", "");
View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
view.startDrag(data, shadowBuilder, view, 0);
// view.setVisibility(View.INVISIBLE);
return true;
} else {
return false;
}
}
}
class MyDragListener implements View.OnDragListener {
String TAG = "Chic";
@Override
public boolean onDrag(View v, DragEvent event) {
int action = event.getAction();
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
// do nothing
Log.d(TAG,"drag startedr");
break;
case DragEvent.ACTION_DROP: Log.d(TAG,"drag drop");
// Dropped, reassign View to ViewGroup
View view = (View) event.getLocalState();
ViewGroup owner = (ViewGroup) view.getParent();
owner.removeView(view);
RelativeLayout container = (RelativeLayout) v;
container.addView(view);
// view.setVisibility(View.VISIBLE);
break;
case DragEvent.ACTION_DRAG_ENDED: Log.d(TAG,"drag ended");
default:
break;
}
return true;
}
}
这是我的xml(风景)
java.io.IOException: fcntl failed: EAGAIN (Try again)
at java.nio.FileChannelImpl.basicLock(FileChannelImpl.java:123)
at java.nio.FileChannelImpl.tryLock(FileChannelImpl.java:177)
at java.nio.channels.FileChannel.tryLock(FileChannel.java:587)
at com.facebook.analytics.reporters.AppStateReporter.a(AppStateReporter.java:141)
at com.facebook.analytics.reporters.AppStateReporter.c(AppStateReporter.java:94)
at com.facebook.analytics.reporters.AppStateReporter.a(AppStateReporter.java:55)
at com.facebook.common.noncriticalinit.NonCriticalInitializer.a(NonCriticalInitializer.java:103)
at com.facebook.common.noncriticalinit.NonCriticalInitializer$2.run(NonCriticalInitializer.java:116)
at com.facebook.common.appchoreographer.DefaultAppChoreographer$5.run(DefaultAppChoreographer.java:384)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at com.facebook.common.executors.WrappingExecutorService$1.run(WrappingExecutorService.java:77)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at com.facebook.common.executors.DefaultConstrainedListeningExecutorService$Worker.run(DefaultConstrainedListeningExecutorService.java:327)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at com.facebook.common.executors.NamedThreadFactory$1.run(NamedThreadFactory.java:42)
at java.lang.Thread.run(Thread.java:841)
Caused by: libcore.io.ErrnoException: fcntl failed: EAGAIN (Try again)
at libcore.io.Posix.fcntlFlock(Native Method)
at libcore.io.ForwardingOs.fcntlFlock(ForwardingOs.java:54)
at java.nio.FileChannelImpl.basicLock(FileChannelImpl.java:121)
at java.nio.FileChannelImpl.tryLock(FileChannelImpl.java:177)
at java.nio.channels.FileChannel.tryLock(FileChannel.java:587)
at com.facebook.analytics.reporters.AppStateReporter.a(AppStateReporter.java:141)
at com.facebook.analytics.reporters.AppStateReporter.c(AppStateReporter.java:94)
at com.facebook.analytics.reporters.AppStateReporter.a(AppStateReporter.java:55)
at com.facebook.common.noncriticalinit.NonCriticalInitializer.a(NonCriticalInitializer.java:103)
at com.facebook.common.noncriticalinit.NonCriticalInitializer$2.run(NonCriticalInitializer.java:116)
at com.facebook.common.appchoreographer.DefaultAppChoreographer$5.run(DefaultAppChoreographer.java:384)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at com.facebook.common.executors.WrappingExecutorService$1.run(WrappingExecutorService.java:77)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at com.facebook.common.executors.DefaultConstrainedListeningExecutorService$Worker.run(DefaultConstrainedListeningExecutorService.java:327)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at com.facebook.common.executors.NamedThreadFactory$1.run(NamedThreadFactory.java:42)
at java.lang.Thread.run(Thread.java:841)
03-28 16:12:56.569 157-376/? E/cutils: Failed to mkdirat(/storage/extSdCard/Android): Read-only file system
03-28 16:12:56.589 157-376/? E/cutils: Failed to mkdirat(/storage/extSdCard/Android): Read-only file system
03-28 16:12:57.109 25075-13896/? E/fb4a(:<default>):VaultDeviceSetup: setupDeviceFromServer
com.facebook.proxygen.HttpNetworkException: connect failed (immediately): errno = 101
at com.facebook.proxygen.LigerHttpResponseHandler.handleError(LigerHttpResponseHandler.java:244)
at com.facebook.proxygen.LigerHttpResponseHandler.onError(LigerHttpResponseHandler.java:209)
at com.facebook.proxygen.JniHandler.onError(JniHandler.java:106)
at com.facebook.proxygen.EventBase.loopForever(Native Method)
at com.facebook.proxygen.HTTPThread.run(HTTPThread.java:32)
at java.lang.Thread.run(Thread.java:841)
03-28 16:12:58.080 157-376/? E/cutils: Failed to mkdirat(/storage/extSdCard/Android): Read-only file system
03-28 16:12:58.090 157-376/? E/cutils: Failed to mkdirat(/storage/extSdCard/Android): Read-only file system
03-28 16:12:58.090 157-376/? E/cutils: Failed to mkdirat(/storage/extSdCard/Android): Read-only file system
03-28 16:12:58.100 157-376/? E/cutils: Failed to mkdirat(/storage/extSdCard/Android): Read-only file system
03-28 16:12:58.541 978-978/? E/NetworkScheduler.SchedulerReceiver: Invalid parameter app
03-28 16:12:58.541 978-978/? E/NetworkScheduler.SchedulerReceiver: Invalid package name : Perhaps you didn't include a PendingIntent in the extras?
03-28 16:13:10.763 589-864/? E/Watchdog: !@Sync 6168
03-28 16:13:19.091 13687-13687/com.example.caneraydin.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.caneraydin.myapplication, PID: 13687
java.lang.ClassCastException: android.support.v7.widget.AppCompatImageView cannot be cast to android.widget.RelativeLayout
at com.example.caneraydin.myapplication.MyDragListener.onDrag(MainActivity.java:74)
at android.view.View.dispatchDragEvent(View.java:17624)
at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1288)
at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1288)
at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1288)
at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1288)
at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1288)
at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1288)
at android.view.ViewRootImpl.handleDragEvent(ViewRootImpl.java:5250)
at android.view.ViewRootImpl.access$900(ViewRootImpl.java:115)
at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3462)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5584)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(Native Method)
03-28 16:13:19.431 589-14357/? E/android.os.Debug: !@Dumpstate > sdumpstate -k -t -z -d -m 13687 -o /data/log/dumpstate_app_error
03-28 16:13:20.192 14380-14380/? E/dalvikvm: Could not find class 'android.app.job.JobScheduler', referenced from method com.android.email.service.r.a
03-28 16:13:20.192 14380-14380/? E/dalvikvm: Could not find class 'android.app.job.JobScheduler', referenced from method com.android.email.service.r.b
03-28 16:13:20.793 14380-14426/? E/Gmail: Error finding the version of the Email provider.....
android.content.pm.PackageManager$NameNotFoundException: com.google.android.email
at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:124)
at com.google.android.gm.EmailMigrationService.a(SourceFile:1280)
at com.google.android.gm.EmailMigrationService.onHandleIntent(SourceFile:219)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.os.HandlerThread.run(HandlerThread.java:61)
03-28 16:13:22.805 1810-1810/? E/SamsungIME: isHWKeyboardConnected() = false --> false
03-28 16:13:22.885 589-589/? E/Tethering: No numeric data
03-28 16:13:24.756 589-697/? E/ViewRootImpl: sendUserActionEvent() mView == null
03-28 16:13:24.766 589-2654/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!
03-28 16:13:24.766 589-2654/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!
03-28 16:13:24.766 1810-1810/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!
03-28 16:13:24.766 1810-1810/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!
03-28 16:13:24.816 589-715/? E/InputDispatcher: channel ~ Channel is unrecoverably broken and will be disposed!
03-28 16:13:40.772 589-864/? E/Watchdog: !@Sync 6169
答案 0 :(得分:1)
由于您在ImageView
img2上设置了OnDragListener,
View v
public boolean onDrag(View v, DragEvent event) {
的类型为ImageView
;所以问题是你在这里试图将ImageView
投射到RelativeLayout
:
RelativeLayout container = (RelativeLayout) v;
答案 1 :(得分:0)
您应该检查v
是否是您期望的RelativeLayout
实例。您应该为该RelativeLayout
实例设置拖动侦听器。拖拽drop是这样的;你应该为拖动的对象和放置目标设置监听器。
myRelativeLayoutInstance.setOnDragListener(new MyDragListener());
听众:
class MyDragListener implements View.OnDragListener {
String TAG = "Chic";
@Override
public boolean onDrag(View v, DragEvent event) {
int action = event.getAction();
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
// do nothing
Log.d(TAG,"drag startedr");
break;
case DragEvent.ACTION_DROP: Log.d(TAG,"drag drop");
if(v == myRelativeLayoutInstance) {
// Dropped, reassign View to ViewGroup
View view = (View) event.getLocalState();
ViewGroup owner = (ViewGroup) view.getParent();
owner.removeView(view);
RelativeLayout container = (RelativeLayout) v;
container.addView(view);
}
break;
case DragEvent.ACTION_DRAG_ENDED: Log.d(TAG,"drag ended");
default:
break;
}
return true;
}
}