There seems to be a recurring problem for new users regarding servicing of ListView onKeyDown keypresses.
My code:-
Using java Syntax Highlighting
- public class test2 extends ListActivity implements android.view.View.OnKeyListener {
- TextView selection;
- Weekfile Week;
- public int[] tag;
- int posit=0;
- int selected;
- ListView myListView;
- @Override
- public void onCreate(Bundle icicle) {
- Week = new Weekfile();
- Week.Openfile("wk200922");
- //create data for listview
- super.onCreate(icicle);
- setContentView(R.layout.main);
- WeatherAdapter weatherAdapter = new WeatherAdapter(
- this,
- tag,
- Week);
- setListAdapter( weatherAdapter);
- myListView = getListView();
- myListView.setChoiceMode(1);
- myListView.setFocusableInTouchMode(true);
- myListView.setFocusable(true);
- myListView.setOnKeyListener(new OnKeyListener() { //<<<<<<<<< objects about setOnKeyListener here
- //@Override
- public boolean onKey(DialogInterface dialog, int keyCode,
- KeyEvent event) {
- // TODO Auto-generated method stub
- System.out.println("KEYDOWN " + keyCode);
- return false;
- }
- });
- }
- @Override
- public boolean onKeyDown(int keyCode, //<<<<<<<<<<<< this gets left and right events
- KeyEvent event){
- System.out.println("KEYDOWN " + keyCode);
- return (true);
- }
Parsed in 0.036 seconds, using GeSHi 1.0.8.4
The last onKeyDown marked with //<<<< accepts the KEYCODE_DPAD_LEFT & KeyEvent.KEYCODE_DPAD_RIGHT: events
but NOT the KEYCODE_DPAD_UP & KeyEvent.KEYCODE_DPAD_DOWN:
events so clearly the ListView is processing these.
In an attempt to replace the ListView.OnKey event I tried to setup a
myListView.setOnKeyListener(new OnKeyListener() but the Eclipse tells me that
The method setOnKeyListener(...) in type View is not applicable for the arguments??
What am I doing wrong??
If I can't setup the OnKeyListener here, then where??
------------------------------------------------------------------------------------------------------------------------------
A thought - A lot of these type of starter bugs would be prevented if there was a Wizard to help set up a basic screen - like a Base Adapter with onItemClick , onKey , setFocusableInTouchMode, setFocusable(true)in the right place so they work. (selectable via checkboxes).
Can anyone point me to some reference material that explains how to get FocusableInTouchMode working?
I understand this is frowned upon but the only people who will use my app will be people who bought the device to use my app.
Steve



