将SurfaceView子类中的ArrayList传递给Activity

时间:2015-09-05 23:50:12

标签: java android arraylist

当用户点击我的主Activity中包含的SurfaceView时,我将项目存储到ArrayList中。

主要活动XML

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <newProject.SurfaceClass
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:id="@+id/spaceField" />


</LinearLayout>

SurfaceClass中的onTouch

@Override
    public boolean onTouch(View view, MotionEvent motionEvent) {

        if (motionEvent.getAction() == MotionEvent.ACTION_DOWN)
        {
            int touchX = (int)(motionEvent.getX());
            int touchY = (int)(motionEvent.getY());
            Point point = new Point(touchX, touchY);

            mItemsClicked.add(point);

            for (int i = mItems.size()-1; i >= 0; i--)
            {
                Item item = listOfItems.get(i);

                inventory.add(item);



            }
            invalidate();

        }
        return false;
    }

我如何能够在我的Main活动中使用此库存ArrayList,以便单词传递该ArrayList,以便我只需单击我的活动中的按钮并记录该ArrayList控制台,例如

2 个答案:

答案 0 :(得分:0)

视图位于“活动”中。为什么不在SurfaceView可以访问的Activity中创建一个Global成员变量ArrayList,并且可以填充它,然后在需要时从Activity中读取该信息。为每个循环使用一个简单的。

答案 1 :(得分:0)

您可以在Surface类中添加一个返回列表

的公共方法
 getMyList().... 

并在你的Mainactivity ..使用id的查找视图来获取表面类的对象

mySurfaceView= findVi....

然后......

mySurfaceView.getMyList();