我刚开始使用android,并且我对这项技术相对较新。我制作了3个具有拖放功能的水平卷轴,我想将它们拖放到某个区域,同时保持失败和成功的下降数量。到目前为止,我完成了一切,但代码并不是那么有效,我认为这种方法并不是最好的方法。我想知道更有效的方法来解决这个问题。我activity_main.xml中如何通过拖放功能从多个Imageviews中选择ImageView ID
<HorizontalScrollView
android:id="@+id/horizontalScrollView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollbars="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:onClick="onTouch">
<ImageView
android:id="@+id/b1"
android:layout_width="200px"
android:layout_height="200px"
android:layout_gravity="center"
android:layout_margin="20dp"
android:src= "@drawable/a1"/>
<ImageView
android:id="@+id/b2"
android:layout_width="200px"
android:layout_height="200px"
android:layout_gravity="center"
android:layout_margin="20dp"
android:src= "@drawable/a2"/>
<ImageView
android:id="@+id/b3"
android:layout_width="200px"
android:layout_height="200px"
android:layout_gravity="center"
android:layout_margin="20dp"
android:src= "@drawable/a3"/>
<ImageView
android:id="@+id/b4"
android:layout_width="200px"
android:layout_height="200px"
android:layout_gravity="center"
android:layout_margin="20dp"
android:src= "@drawable/a4"/>
<ImageView
android:id="@+id/b5"
android:layout_width="200px"
android:layout_height="200px"
android:layout_gravity="center"
android:layout_margin="20dp"
android:src= "@drawable/a5"/>
<ImageView
android:id="@+id/b6"
android:layout_width="200px"
android:layout_height="200px"
android:layout_gravity="center"
android:layout_margin="20dp"
android:src= "@drawable/a6"/>
<ImageView
android:id="@+id/b7"
android:layout_width="200px"
android:layout_height="200px"
android:layout_gravity="center"
android:layout_margin="20dp"
android:src= "@drawable/a7"/>
<ImageView
android:id="@+id/b8"
android:layout_width="200px"
android:layout_height="200px"
android:layout_gravity="center"
android:layout_margin="20dp"
android:src= "@drawable/a9"/>
<ImageView
android:id="@+id/b9"
android:layout_width="200px"
android:layout_height="200px"
android:layout_gravity="center"
android:layout_margin="20dp"
android:src= "@drawable/a10"/>
<ImageView
android:id="@+id/b10"
android:layout_width="200px"
android:layout_height="200px"
android:layout_gravity="center"
android:layout_margin="20dp"
android:src= "@drawable/a8"/>
</LinearLayout>
</HorizontalScrollView>
的
部分和MainActivity.java
public class MainActivity extends Activity {
int id;
ImageView drag;
LinearLayout drop;
TextView text, success, fail;
int total, failure, succ = 0, i;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
drag = (ImageView) findViewById(id);
drag.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent arg1) {
// TODO Auto-generated method stub
ClipData data = ClipData.newPlainText("", "");
View.DragShadowBuilder shadow = new View.DragShadowBuilder(drag);
v.startDrag(data, shadow, null, 0);
return false;
}
});
drop = (LinearLayout) findViewById(R.id.bottomlinear);
text = (TextView) findViewById(R.id.Total);
success = (TextView) findViewById(R.id.Success);
fail = (TextView) findViewById(R.id.Fail);
drop.setOnDragListener(new View.OnDragListener() {
@Override
public boolean onDrag(View v, DragEvent event) {
// TODO Auto-generated method stub
final int action = event.getAction();
switch (action) {
case DragEvent.ACTION_DRAG_STARTED:
break;
case DragEvent.ACTION_DRAG_EXITED:
break;
case DragEvent.ACTION_DRAG_ENTERED:
break;
case DragEvent.ACTION_DROP:
{
succ = succ + 1;
return (true);
}
case DragEvent.ACTION_DRAG_ENDED:
{
total = total + 1;
int failure = total - succ;
success.setText("Sucessful Drops :" + succ);
text.setText("Total Drops: " + total);
fail.setText("Failed Drops: " + failure);
return (true);
}
default:
break;
}
return true;
}
});
}
}
上面的代码适用于仅第一图像视图,我需要一个解决方案,使所有的人。我尝试使用ImageView数组for循环,但只返回最后ImageView。我真的很感谢一些帮助。
对不起,但您还没有输入正确的描述与您错误的数组实施,我给了你适当的解决方案你的问题,这是不可能知道如何错误数组实施 –
接下来的事情,如果你有最终变量,那么它会抛出每次尝试重新分配一个例外。 –
我刚才使用了'final'关键字,它在任何情况下总是得到最后一个图像视图之前就工作得很好。不发布错误的解决方案是我的不好,我很抱歉,是的,我刚刚尝试了你的确切解决方案。 它工作正常,除了它总是最终选择最后一个图像视图类似于我的数组用来做'最终'关键字解决了这个问题的事实。 – JBJ