2015-02-07 5 views
3

Я действительно не могу найти ответ на эту проблему в Интернете. Я пытаюсь перемещаться по элементам XML через кнопки громкости Android. 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

ответ

6

Вы должны импортировать класс KeyEvent:

import android.view.KeyEvent; 
+0

Спасибо! Это было намного легче, чем я думал. –

0

Попробуйте импортировать класс KeyEvent как:

import android.view.KeyEvent; 

Или использовать полностью квалифицированное класс как:

case android.view.KeyEvent.KEYCODE_VOLUME_UP: 
Смежные вопросы