2014-01-04 2 views
0

Я не могу нажать на любой элемент в моем списке. Моя активность расширяет ListActivity, и я внедрил OnItemClickListener и назначил его списку. Я исследовал ошибку, и у людей была аналогичная проблема с несколькими видами в listView, поэтому, делая focusable как ложные или android:descendantFocusability="blocksDescendants" .. обычно решала их проблему .. Моя проблема не решена.Android: ListView с одним текстовым просмотром в каждой строке не может быть нажата

 protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    movieListView = getListView(); // get the built-in ListView 
    movieListView.setOnItemClickListener(viewMovieListener); 

    movieListView.setClickable(true); 

    String[] from = new String[] { "name" }; 
    int[] to = new int[] { R.id.categoryTextView }; 
    movieAdapter = new SimpleCursorAdapter(MovieList.this, R.layout.activity_movie_list, null, from, to); 

    value = getIntent().getIntExtra(MainActivity.CATEGORY, -1); 
    if(value == 1) 
     category = "Family"; 
    else if(value == 2) 
     category = "Horror"; 
    else if(value == 3) 
     category = "Comedy"; 

} 


OnItemClickListener viewMovieListener = new OnItemClickListener() 
    { 
     @Override 
     // This doesnt get called? no it doesnt 
     public void onItemClick(AdapterView<?> arg0, View arg1, int position, 
     long id) 
     { 
     // create an Intent to launch the ViewContact Activity 
     Intent viewMovie = 
      new Intent(MovieList.this, ViewMovie.class); 

     // pass the selected contact's row ID as an extra with the Intent 
     viewMovie.putExtra(ROW_ID, id); 
     startActivity(viewMovie); // start the ViewContact Activity 
     } 
    }; 

Мой XML:

 <?xml version="1.0" encoding="utf-8"?> 
    <TextView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/categoryTextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="TextView" 
     android:focusable = "false" 
     android:descendantFocusability="blocksDescendants" 
     android:clickable="true" 
     ></TextView> 
+0

Что произойдет, если вы удалите 'андроида: кликабельны = "истинный" '? –

+0

это не имеет значения, потому что я не мог щелкнуть по нему .. я сделал это .. но ничего не произошло – user3149384

ответ

0

В ListActivity, вы можете переопределить onListItemClick щелкнуть Пункт

@Override 
public void onListItemClick(ListView l, View v, int position, long id) { 
    Log.i("example",position); 

} 
+0

Должен ли он быть вызван автоматически? – user3149384

+0

Да, когда вы нажмете элемент, он будет называться – henry4343

+0

Вы можете посмотреть этот учебник http://developer.android.com/reference/android/app/ListActivity.html#onListItemClick(android.widget.ListView, android.view.View , int, long) – henry4343

0

попробовать это

android:focusable="false" 
    android:focusableInTouchMode="false" 
+0

Это не дает ответа на вопрос. Чтобы критически или просить разъяснения у автора, оставьте комментарий ниже своего сообщения. –

+0

@JacekLaskowski, если этот код решает свою проблему, тогда это ответ. n не нужно комментировать. – sachin10

+0

Форматирование и * попробуйте это * выглядели как запрос для уточнения. Будьте более конкретными и предложите полное решение, чтобы ответ остался один. –

Смежные вопросы