我剛開始使用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