Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法实例化类型意图_Java_Android_Android Intent - Fatal编程技术网

Java 无法实例化类型意图

Java 无法实例化类型意图,java,android,android-intent,Java,Android,Android Intent,错误:“无法实例化类型意图” 目标:根据gridView位置值启动新意图 请求:协助处理上述指定的错误 public void onItemClick(AdapterView<?> parent, View v, int position, long id) { ImageCell i = (ImageCell) v; trace("onItemClick in view: " + i.mCellNumber); Toast.makeText(DragActi

错误:“无法实例化类型意图”

目标:根据gridView位置值启动新意图

请求:协助处理上述指定的错误

public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
    ImageCell i = (ImageCell) v;
    trace("onItemClick in view: " + i.mCellNumber);
    Toast.makeText(DragActivity.this, "" + position, Toast.LENGTH_SHORT).show();

    switch (position) {
    case 0:
    // start one activity
        Intent intent = new Intent(DragActivity.this, Activity1.class);         
        startActivity(intent);
    break;
    case 1:
    // start another activity

    break;
    // etc.
    default:
        Toast.makeText(DragActivity.this, "Default", Toast.LENGTH_SHORT).show();
    }
}
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
ImageCell i=(ImageCell)v;
跟踪(“在视图中单击:+i.mCellNumber”);
Toast.makeText(DragActivity.this,“+位置,Toast.LENGTH_SHORT).show();
开关(位置){
案例0:
//开始一项活动
意向意向=新意向(DragActivity.this,Activity1.class);
星触觉(意向);
打破
案例1:
//开始另一项活动
打破
//等等。
违约:
Toast.makeText(DragActivity.this,“默认”,Toast.LENGTH_SHORT.show();
}
}
我不确定我到底做错了什么(我尝试添加了正确的导入等,但我不确定还能做些什么来解决这个问题),非常感谢您的建议

完整资料来源:
导入android.app.Activity;
导入android.os.Bundle;
导入android.content.Intent;
导入android.util.Log;
导入android.view.Gravity;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.MotionEvent;
导入android.view.view;
导入android.view.ViewGroup.LayoutParams;
导入android.widget.AdapterView;
导入android.widget.EditText;
导入android.widget.FrameLayout;
导入android.widget.GridView;
导入android.widget.TextView;
导入android.widget.Toast;
公共类DragActivity扩展了活动实现
View.OnLongClickListener、View.OnClickListener、View.OnTouchListener{
/**
*/
//常数
私有静态final int HIDE\u TRASHCAN\u MENU\u ID=MENU.FIRST;
私有静态最终整数显示\u垃圾桶\u菜单\u ID=MENU.FIRST+1;
私有静态final int ADD_OBJECT_MENU_ID=MENU.FIRST+2;
私有静态最终整数更改\触摸\模式\菜单\ ID=MENU.FIRST+3;
私有布尔isErase=true;
私人编辑;
私有文本视图发送;
/**
*/
//变数
专用DragController mDragController;//处理拖放的对象
//序列。它与
//DragSource和DropTarget
//对象。
private DragLayer mDragLayer;//可以在其中创建对象的视图组
//拖。
private DeleteZone mDeleteZone;//用于删除的删除目标
//从屏幕上删除对象。
private int mImageCount=0;//已添加到的图像数
//屏幕。
私有ImageCell mLastNewCell=null;//添加到
//单击“添加图像”时的屏幕。
私有布尔值mLongClickStartsDrag=true;//如果为true,则需要较长时间
//单击以开始拖动
//手术。
//否则,任何触摸
//事件开始拖动。
public static final boolean debug=false;//使用此选项查看额外的
//祝酒词。
/**
*/
//方法
/**
*添加新图像,以便用户可以移动它。它显示在
*图像\源\屏幕的框架部分。
* 
*@param resourceId
*int-要添加的映像的资源id
*/
public void addNewImageToScreen(int resourceId){
if(mLastNewCell!=null)
mLastNewCell.setVisibility(View.GONE);
FrameLayout imageHolder=(FrameLayout)findViewById(R.id.image\u source\u frame);
if(imageHolder!=null){
FrameLayout.LayoutParams lp=新建FrameLayout.LayoutParams(
LayoutParams.FILL\u父级,LayoutParams.FILL\u父级,
重心);
ImageCell newView=新的ImageCell(此);
setImageResource(resourceId);
imageHolder.addView(newView,lp);
newView.mEmpty=false;
newView.mCellNumber=-1;
mLastNewCell=newView;
mImageCount++;
//让此活动收听触摸并单击视图的事件。
setOnClickListener(这个);
newView.setOnLongClickListener(这个);
setOnTouchListener(这个);
}
}
/**
*将其中一个图像添加到屏幕,以便用户可以移动新图像
*周围。请参阅addImageToScreen。
* 
*/
public void addNewImageToScreen(){
int resourceId=R.drawable.sqwhite;
添加NewTextToScreen();
int m=图像计数%3;
如果(m==1)
resourceId=R.drawable.sqdrk;
else如果(m==2)
resourceId=R.drawable.sqwhite;
addNewImageToScreen(资源ID);
}
私有void addNewTextToScreen(){
//TODO自动生成的方法存根
//et.setVisibility(View.VISIBLE);
如果(iSeries){
tx.setText(et.getText().toString());
}否则{
tx.setText(“”);
et.setVisibility(View.GONE);
}
iSeries=!iSeries;
}
/**
*处理对视图的单击。
* 
*/
公共void onClick(视图v){
如果(长单击开始拖动){
//告诉用户需要长时间单击才能开始拖动。
//toast(“按住可拖动图像”);
positionListener();
onItemClick(null、v、mImageCount、mImageCount);
}
}
私有void positionListener(){
//TODO自动生成的方法存根
//GridView GridView=(GridView)findViewById(R.id.image\u grid\u view);
//gridView.setOnItemCli
import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.GridView;
import android.widget.TextView;
import android.widget.Toast;


    public class DragActivity extends Activity implements
    View.OnLongClickListener, View.OnClickListener, View.OnTouchListener{

        /**
         */
        // Constants

        private static final int HIDE_TRASHCAN_MENU_ID = Menu.FIRST;
        private static final int SHOW_TRASHCAN_MENU_ID = Menu.FIRST + 1;
        private static final int ADD_OBJECT_MENU_ID = Menu.FIRST + 2;
        private static final int CHANGE_TOUCH_MODE_MENU_ID = Menu.FIRST + 3;
        private boolean isErase = true;
        private EditText et;
        private TextView tx;

        /**
         */
        // Variables

        private DragController mDragController; // Object that handles a drag-drop
        // sequence. It intersacts with
        // DragSource and DropTarget
        // objects.
        private DragLayer mDragLayer; // The ViewGroup within which an object can be
        // dragged.
        private DeleteZone mDeleteZone; // A drop target that is used to remove
        // objects from the screen.
        private int mImageCount = 0; // The number of images that have been added to
        // screen.
        private ImageCell mLastNewCell = null; // The last ImageCell added to the
        // screen when Add Image is clicked.
        private boolean mLongClickStartsDrag = true; // If true, it takes a long
        // click to start the drag
        // operation.
        // Otherwise, any touch
        // event starts a drag.

        public static final boolean Debugging = false; // Use this to see extra

        // toast messages.

        /**
         */
        // Methods

        /**
         * Add a new image so the user can move it around. It shows up in the
         * image_source_frame part of the screen.
         * 
         * @param resourceId
         *            int - the resource id of the image to be added
         */

        public void addNewImageToScreen(int resourceId) {
            if (mLastNewCell != null)
                mLastNewCell.setVisibility(View.GONE);

            FrameLayout imageHolder = (FrameLayout) findViewById(R.id.image_source_frame);
            if (imageHolder != null) {
                FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
                        LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT,
                        Gravity.CENTER);
                ImageCell newView = new ImageCell(this);
                newView.setImageResource(resourceId);
                imageHolder.addView(newView, lp);
                newView.mEmpty = false;
                newView.mCellNumber = -1;
                mLastNewCell = newView;
                mImageCount++;

                // Have this activity listen to touch and click events for the view.
                newView.setOnClickListener(this);
                newView.setOnLongClickListener(this);
                newView.setOnTouchListener(this);

            }
        }

        /**
         * Add one of the images to the screen so the user has a new image to move
         * around. See addImageToScreen.
         * 
         */

        public void addNewImageToScreen() {
            int resourceId = R.drawable.sqwhite;
            addNewTextToScreen();
            int m = mImageCount % 3;

            if (m == 1)
                resourceId = R.drawable.sqdrk;

            else if (m == 2)
                resourceId = R.drawable.sqwhite;
            addNewImageToScreen(resourceId);

        }

        private void addNewTextToScreen() {
            // TODO Auto-generated method stub

            // et.setVisibility(View.VISIBLE);
            if (isErase) {
                tx.setText(et.getText().toString());
            } else {
                tx.setText("");
                et.setVisibility(View.GONE);
            }
            isErase = !isErase;
        }

        /**
         * Handle a click on a view.
         * 
         */

        public void onClick(View v) {
            if (mLongClickStartsDrag) {
                // Tell the user that it takes a long click to start dragging.
            //  toast("Press and hold to drag an image.");
              positionListener();
              onItemClick(null, v, mImageCount, mImageCount);

            }
        }

        private void positionListener() {
            // TODO Auto-generated method stub

    //      GridView gridView = (GridView) findViewById(R.id.image_grid_view);
    //      gridView.setOnItemClickListener(new OnItemClickListener() {
    //          public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
    //              Toast.makeText(DragActivity.this, "" + position, Toast.LENGTH_SHORT).show();
    //          }
    //      });
        }

        /**
         * Handle a click of the Add Image button
         * 
         */

        public void onClickAddImage(View v) {
            addNewImageToScreen();
        }

    //  public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
    //        Toast.makeText(DragActivity.this, "" + position, Toast.LENGTH_SHORT).show();
    //    }

        /**
         * onCreate - called when the activity is first created.
         * 
         * Creates a drag controller and sets up three views so click and long click
         * on the views are sent to this activity. The onLongClick method starts a
         * drag sequence.
         * 
         */

        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            setContentView(R.layout.demo);
            et = (EditText) findViewById(R.id.editText1);
            et.setVisibility(View.INVISIBLE);
            tx = (TextView) findViewById(R.id.textView1);

            GridView gridView = (GridView) findViewById(R.id.image_grid_view);

            if (gridView == null)
                toast("Unable to find GridView");
            else {
                gridView.setAdapter(new ImageCellAdapter(this));
                // gridView.setOnItemClickListener (this);
            }

            mDragController = new DragController(this);
            mDragLayer = (DragLayer) findViewById(R.id.drag_layer);
            mDragLayer.setDragController(mDragController);
            mDragLayer.setGridView(gridView);

            mDragController.setDragListener(mDragLayer);
            // mDragController.addDropTarget (mDragLayer);

            mDeleteZone = (DeleteZone) findViewById(R.id.delete_zone_view);

            // Give the user a little guidance.
            Toast.makeText(getApplicationContext(),
                    getResources().getString(R.string.instructions),
                    Toast.LENGTH_LONG).show();
        }

        /**
         * Build a menu for the activity.
         * 
         */

        public boolean onCreateOptionsMenu(Menu menu) {
            super.onCreateOptionsMenu(menu);

            menu.add(0, HIDE_TRASHCAN_MENU_ID, 0, "Hide Trashcan").setShortcut('1',
                    'c');
            menu.add(0, SHOW_TRASHCAN_MENU_ID, 0, "Show Trashcan").setShortcut('2',
                    'c');
            menu.add(0, ADD_OBJECT_MENU_ID, 0, "Add View").setShortcut('9', 'z');
            menu.add(0, CHANGE_TOUCH_MODE_MENU_ID, 0, "Change Touch Mode");

            return true;
        }

        /**
         * Handle a click of an item in the grid of cells.
         * 
         */

        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            ImageCell i = (ImageCell) v;
            trace("onItemClick in view: " + i.mCellNumber);
            Toast.makeText(DragActivity.this, "" + position, Toast.LENGTH_SHORT).show();

            switch (position) {
            case 0:
            // start one activity
                Intent intent = new Intent(DragActivity.this, Activity1.class);         
                startActivity(intent);
            break;
            case 1:
            // start another activity

            break;
            // etc.
            default:
                // unknown type! based on the language,
                // there should probably be some error-handling
                // here, maybe an exception
                Toast.makeText(DragActivity.this, "Default", Toast.LENGTH_SHORT).show();
            }
        }

        /**
         * Handle a long click. If mLongClick only is true, this will be the only
         * way to start a drag operation.
         * 
         * @param v
         *            View
         * @return boolean - true indicates that the event was handled
         */

        public boolean onLongClick(View v) {
            if (mLongClickStartsDrag) {

                // trace ("onLongClick in view: " + v + " touchMode: " +
                // v.isInTouchMode ());

                // Make sure the drag was started by a long press as opposed to a
                // long click.
                // (Note: I got this from the Workspace object in the Android
                // Launcher code.
                // I think it is here to ensure that the device is still in touch
                // mode as we start the drag operation.)
                if (!v.isInTouchMode()) {
                    toast("isInTouchMode returned false. Try touching the view again.");
                    return false;
                }
                return startDrag(v);
            }

            // If we get here, return false to indicate that we have not taken care
            // of the event.
            return false;
        }

        /**
         * Perform an action in response to a menu item being clicked.
         * 
         */

        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
            case HIDE_TRASHCAN_MENU_ID:
                if (mDeleteZone != null)
                    mDeleteZone.setVisibility(View.INVISIBLE);
                return true;
            case SHOW_TRASHCAN_MENU_ID:
                if (mDeleteZone != null)
                    mDeleteZone.setVisibility(View.VISIBLE);
                return true;
            case ADD_OBJECT_MENU_ID:
                // Add a new object to the screen;
                addNewImageToScreen();
                return true;
            case CHANGE_TOUCH_MODE_MENU_ID:
                mLongClickStartsDrag = !mLongClickStartsDrag;
                String message = mLongClickStartsDrag ? "Changed touch mode. Drag now starts on long touch (click)."
                        : "Changed touch mode. Drag now starts on touch (click).";
                Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG)
                        .show();
                return true;
            }

            return super.onOptionsItemSelected(item);
        }

        /**
         * This is the starting point for a drag operation if mLongClickStartsDrag
         * is false. It looks for the down event that gets generated when a user
         * touches the screen. Only that initiates the drag-drop sequence.
         * 
         */

        public boolean onTouch(View v, MotionEvent ev) {
            // If we are configured to start only on a long click, we are not going
            // to handle any events here.
            if (mLongClickStartsDrag)
                return false;

            boolean handledHere = false;

            final int action = ev.getAction();

            // In the situation where a long click is not needed to initiate a drag,
            // simply start on the down event.
            if (action == MotionEvent.ACTION_DOWN) {
                handledHere = startDrag(v);
            }

            return handledHere;
        }

        /**
         * Start dragging a view.
         * 
         */

        public boolean startDrag(View v) {
            DragSource dragSource = (DragSource) v;

            // We are starting a drag. Let the DragController handle it.
            mDragController.startDrag(v, dragSource, dragSource,
                    DragController.DRAG_ACTION_MOVE);

            return true;
        }

        /**
         * Show a string on the screen via Toast.
         * 
         * @param msg
         *            String
         * @return void
         */

        public void toast(String msg) {
            Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
        } // end toast

        /**
         * Send a message to the debug log. Also display it using Toast if Debugging
         * is true.
         */

        public void trace(String msg) {
            Log.d("DragActivity", msg);
            if (!Debugging)
                return;
            toast(msg);
        }

    } // end class
public class DragActivity extends Activity implements
    View.OnLongClickListener, View.OnClickListener, View.OnTouchListener{
//...
}
startActivity(intent);
switch (pos) {
        case 1:  //do something
                 break;
        case 2:  //do something
                 break;
        default: break;
    }