Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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 无法解析符号KeyEvent_Java_Android - Fatal编程技术网

Java 无法解析符号KeyEvent

Java 无法解析符号KeyEvent,java,android,Java,Android,我真的在网上找不到这个问题的答案。我试图通过Android音量按钮浏览XML项目。StackOverflow为我提供了以下代码: @Override public boolean dispatchKeyEvent(KeyEvent event) { int action = event.getAction(); int keyCode = event.getKeyCode(); switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP:

我真的在网上找不到这个问题的答案。我试图通过Android音量按钮浏览XML项目。StackOverflow为我提供了以下代码:

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
int action = event.getAction();
int keyCode = event.getKeyCode();
    switch (keyCode) {
    case KeyEvent.KEYCODE_VOLUME_UP:
        if (action == KeyEvent.ACTION_DOWN) {
            //TODO
        }
        return true;
    case KeyEvent.KEYCODE_VOLUME_DOWN:
        if (action == KeyEvent.ACTION_DOWN) {
            //TODO
        }
        return true;
    default:
        return super.dispatchKeyEvent(event);
    }
}
但是,当我尝试将这段代码粘贴到MainActivity.java中时,“KeyEvent”变为红色,错误为“无法解析符号KeyEvent”。这是MainActivity.java中的代码

import android.app.ProgressDialog;
import android.content.Intent;
import android.util.Log;
import android.view.InputEvent;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;


import java.util.ArrayList;

public class MainActivity extends ActionBarActivity {

        ListView lvPcsPost;
        ArrayList<PostValue> postValueArrayList;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            lvPcsPost = (ListView) findViewById(R.id.lvPcsPost);
            lvPcsPost.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    if (postValueArrayList != null && postValueArrayList.size() > 0) {
                        Intent intentShowPost = new Intent(Intent.ACTION_VIEW, Uri.parse(postValueArrayList.get(position).getVid()));
                        startActivity(intentShowPost);
                    }
                }
            });
            new PostAsync().execute();
    }

    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        int action = event.getAction();
        int keyCode = event.getKeyCode();
        switch (keyCode) {
            case KeyEvent.KEYCODE_VOLUME_UP:
                if (action == KeyEvent.ACTION_DOWN) {
                    //TODO
                }
                return true;
            case KeyEvent.KEYCODE_VOLUME_DOWN:
                if (action == KeyEvent.ACTION_DOWN) {
                    //TODO
                }
                return true;
            default:
                return super.dispatchKeyEvent(event);
        }
    }


class PostAsync extends AsyncTask<Void, Void, Void> {
        ProgressDialog pd;
        XMLHelper helper;


        @Override
        protected void onPreExecute() {
            pd = ProgressDialog.show(MainActivity.this, "Please wait...", "Loading", true, false);
        }

        @Override
        protected Void doInBackground(Void... arg0) {
            helper = new XMLHelper();
            helper.get();
            postValueArrayList = helper.getPostsList();
            return null;

        }

        @Override
        protected void onPostExecute(Void result) {
            PostBaseAdapter postBaseAdapter = new PostBaseAdapter(MainActivity.this, postValueArrayList);
            lvPcsPost.setAdapter(postBaseAdapter);
            pd.dismiss();
        }


    }

}
导入android.app.ProgressDialog;
导入android.content.Intent;
导入android.util.Log;
导入android.view.InputEvent;
导入android.net.Uri;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.support.v7.app.ActionBarActivity;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.Button;
导入android.widget.ListView;
导入android.widget.Toast;
导入java.util.ArrayList;
公共类MainActivity扩展了ActionBarActivity{
ListView lvPcsPost;
ArrayList postValueArrayList;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lvPcsPost=(ListView)findViewById(R.id.lvPcsPost);
lvPcsPost.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
if(postValueArrayList!=null&&postValueArrayList.size()>0){
Intent intentShowPost=新的Intent(Intent.ACTION_视图,Uri.parse(postValueArrayList.get(position.getVid());
startActivity(intentShowPost);
}
}
});
新建PostAsync().execute();
}
@凌驾
公共布尔dispatchKeyEvent(KeyEvent事件){
int action=event.getAction();
int keyCode=event.getKeyCode();
开关(钥匙代码){
case KeyEvent.KEYCODE\u音量\u增大:
if(action==KeyEvent.action\u DOWN){
//待办事项
}
返回true;
case KeyEvent.KEYCODE\u音量\u下降:
if(action==KeyEvent.action\u DOWN){
//待办事项
}
返回true;
违约:
返回super.dispatchKeyEvent(事件);
}
}
类PostAsync扩展异步任务{
进展性帕金森病;
XMLHelper助手;
@凌驾
受保护的void onPreExecute(){
pd=ProgressDialog.show(MainActivity.this,“请稍候…”,“正在加载”,true,false);
}
@凌驾
受保护的Void doInBackground(Void…arg0){
helper=新的XMLHelper();
helper.get();
postValueArrayList=helper.getPostsList();
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
PostBaseAdapter PostBaseAdapter=新的PostBaseAdapter(MainActivity.this,postValueArrayList);
lvPcsPost.setAdapter(postBaseAdapter);
pd.解散();
}
}
}

任何人看到这里的问题吗?

您需要导入该类:


尝试导入KeyEvent类,如:

import android.view.KeyEvent;
或使用完全合格的类别作为:

case android.view.KeyEvent.KEYCODE_VOLUME_UP:

谢谢这比我想象的要容易得多。
case android.view.KeyEvent.KEYCODE_VOLUME_UP: