2013-07-19 1 views
0

Обычно я установил мой ItemClickListener используяКак установить OnItemClickListener() с неявным использованием ListView и адаптером по умолчанию

list.setOnItemClickListener(new OnItemClickListener() { 

      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
        long x = MyActivity.this.myAdapter.getItemId(position); //to get the clicked item position 
      } 
     }); 

После установки моего ListView и т.д.

Теперь я должен работать над кодом, которые используют список с умолчанию список адаптера Android таким образом

public class ListDefs extends ListActivity { 
     private Defs defs; 
     private ArrayAdapter<String> adapter; 

     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      defs = Note.defs; 
      adapter = new ArrayAdapter<String>(this, 
        android.R.layout.simple_list_item_1, defs.lines); 
      setListAdapter(adapter); 
     } 


    } 

Как установить в этом сценарии в OnItemClickListener()?

ответ

0

ListActivity имеет как методы getListAdapter, так и getListView.

В вашем OnCreate, после вызова

setContentView(R.layout.list_activity); 

где R.layout.list_activity ваш файл макета для деятельности, которая имеет ListView с меткой андроида список идентификаторов, как так (по документации)

<ListView 
    android:id="@android:id/list" 
    ... /> 

можно назвать

getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
    ... 
    } 
}); 

из документов

ListActivity имеет макет по умолчанию, который состоит из единого полноэкранного списка в центре экрана. Однако, если вы хотите, вы можете настроить макет экрана, установив собственный макет представления с помощью setContentView() в onCreate(). Для этого ваш собственный просмотр ДОЛЖЕН содержать объект ListView с идентификатором «@android: id/list» (или список, если он в коде)