2016-03-03 3 views
0

Приложение вылетает из-за того, что он хочет, чтобы я поместил android.R.id.list в метод контента, что невозможно, потому что он ожидает ссылки на макет, а не ссылку на список.приложение терпит крах при поиске

public class SearchResultsActivity extends ListActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_result); 
     handleIntent(getIntent()); 
    } 
    @Override 
    public void onListItemClick(ListView l, 
           View v, int position, long id) { 
     // call detail activity for clicked entry 
    } 

    @Override 
    public void onNewIntent(Intent intent) { 
     setIntent(intent); 
     handleIntent(intent); 
    } 


    private void handleIntent(Intent intent) { 
     DatabaseTable db = new DatabaseTable(this); 
     if (Intent.ACTION_SEARCH.equals(intent.getAction())) { 
      String query = intent.getStringExtra(SearchManager.QUERY); 
      Cursor c = db.getWordMatches(query, null); 
     } 
    } 
} 
+0

это потому, что у вас есть ListActivity .... для этого вам нужен ListView с идентификатором: list .... – Opiatefuchs

+1

'он хочет, чтобы я поставил android.R.id .list' Это происходит, когда вы используете 'ListActivities' или' ListFragments', вместо простого 'ListViews' –

ответ

0

Прямо из документации

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

Для решения Вашего заявления

который не представляется возможным

Почему бы и нет? Просто измените свой ListView в своем activity_result.xml, чтобы использовать @android:id/list

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