2015-02-07 61 views
3

我真的无法在互联网上找到这个问题的答案。我正在尝试通过Android音量按钮浏览XML项目。 StackOverflow上给了我下面的代码,这样做的:无法解析符号KeyEvent

@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(); 
     } 


    } 

} 

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

+0

进口'KeyEvent'? – csmckelvey 2015-02-07 14:44:35

回答

6

您需要导入类KeyEvent

import android.view.KeyEvent; 
+0

谢谢!这比我想象的要容易得多。 – 2015-02-07 15:06:30

0

尝试导入的KeyEvent类,如:

import android.view.KeyEvent; 

或者使用完全合格的类如:

case android.view.KeyEvent.KEYCODE_VOLUME_UP: