Поиск по всем файлам android studio

Как искать во всех файлах строку в Android Studio?

В Android Studio ( IntelliJ ) как выполнить «поиск файлов» для строки в области файлов? Может ли Поиск везде сделать это, я вижу только, как использовать его для поиска «кода», а не «файлов»

Пример. Найдите строку «Dummy Button» в «Области рабочей области».

Ожидаемый ответ: res / values ​​/ string.xml: line4

7 ответов

Вы можете сделать это двумя способами:

Перейти к Menu -> Edit -> Find -> Find in Path

Или воспользуйтесь ярлыком,

ctrl+shift+f

В обновлении Android Studio 4.1 изменилась комбинация для пользователей Mac, теперь вы должны использовать Command + Shift + f .

В моем случае я случайно поставил галочку напротив «Маски файла». Таким образом, поиск по пути по всем файлам xml невозможен. Может быть, это поможет тебе.

Дважды нажмите кнопку Shift и введите в поле поиска поиск по всей студии Android.

Строка меню-> Правка-> Найти-> Найти в пути .

Попробуй это. Введите имя строки в диалоговом окне после нажатия ctrl+shift+f

В Android Studio

На компьютере под управлением Windows или Linux используйте сочетание клавиш Ctrl + Shift + F для поиска любой строки во всем проекте. Это легко запомнить, учитывая, что Ctrl + F используется для поиска в текущем файле. Так что просто нажмите Shift .

В OSX используйте клавишу Command вместо Ctrl .

Используйте комбинацию Ctrl + F для Windows и Linux для поиска в текущем файле.

Используйте комбинацию Shift + Shift (двойное нажатие Shift ) для Windows и Linux для поиска в файле проекта или в файле проекта.

Command + Shift + F на Mac для поиска в пути

Источник

Поиск текста во всем проекте, во всех классах Android Studio

Поиск в большом проекте Android Studio
Если у меня есть большой проект и этот проект писал не я. Но я хочу найти в этом коде, ну скажем.

Android Studio ошибка в проекте
Взял проект на GitHab и всё бы ничего но появляется ошибка вот такая: Error:Could not find.

Android Studio, импорт не видит в проекте один из классов?
Скачал библиотеку в виде сорскода, подключил к проекту все хорошо импортнулось, но один из классов.

Подключение изображения как ресурса в проекте в Android studio
Пытаюсь сделать приложение, которое при нажатии на кнопку показывает изображение (изначально.

Решение

ExFau$t
Не очень понятно как пользоваться.. В среде delphi вводишь текст, нажимаешь поиск, и внизу показываются все модули проекта в свернутом виде со строками, где есть такой текст.. А как тут? Я ввел искомый текст, нажал enter, но список модулей со строками где такой текст не вижу..

Добавлено через 21 минуту
demixdn
Спасибо, похоже то что надо..

Как правильно сделать декларацию класса видимой во всём проекте и всех его модулях?
Здравствуйте. Имеется класс декларированный в одном модуле (файле), а нужно использовать его.

Где в проекте Android Studio лучше добавлять элементы в БД SQL?
Пишу приложение-викторину . У меня есть класс Db public class Db extends SQLiteOpenHelper < .

Android Studio — в проекте пропал класс после запуска приложения
Здравствуйте, писал приложение и потребовалось создать новый класс. Создал, и появилась вот такая.

Как работает библиотека в Android Studio, как ее подключить, чтобы она заработала в проекте?
здраствуйте) столкнулся с такой проблемой: не понимаю как работает библиотека в андроид студио, как.

Источник

Искать все вхождения строки во всем проекте в Android Studio

Это может быть действительно глупый вопрос, но я просто не могу понять. Я только начал использовать Android Studio (IntelliJ), и теперь я ищу эту функцию, чтобы найти появление строки в любом из файлов моего проекта. Например: я хочу найти все файлы, содержащие строку « .getUuid() »

Читайте также:  Прошивка авто через elm327 bluetooth андроид

Поиск в правом верхнем углу не дает мне правильных результатов, и я не думаю, что могу найти эту функцию в разделе «Редактирование»> «Найти».

Может ли кто-нибудь указать мне в правильном направлении? Любая помощь действительно понравится!

Прежде всего, эта IDEA имеет приятную команду « Find Usages ». Его можно найти в контекстном меню, когда курсор находится на каком-либо поле, методе и т. Д.

Это контекстно-зависимая информация, и, насколько я знаю, это лучший способ найти класс, метод или использование поля.

Кроме того, вы можете использовать

Диалог , который позволяет выполнять поиск по всему рабочему пространству.

Также в IDEA 13 есть удивительная опция « Search Everywhere », по умолчанию вызывается двойным сдвигом. Он позволяет выполнять поиск в проектах, файлах, классах, настройках и т. Д.

Также вы можете выполнить поиск в диалоговом окне «Структура проекта» с помощью « Find in Path… ». Просто назовите его правой кнопкой мыши в конкретном каталоге, и поиск будет ограничен, только внутри этого каталога и его подкаталога.

В Android Studio на компьютере под управлением Windows или Linux используйте сочетание клавиш Ctrl + Shift + F для поиска любой строки в целом проекте. Легко запомнить, что Ctrl + F используется для поиска в текущем файле. Поэтому просто нажмите Shift .

В OSX используйте клавишу Command вместо Ctrl

Дважды нажмите Shift и появится диалоговое окно Search Everywhere.

Используйте комбинацию Ctrl + Shift + F для Windows и Linux для поиска по всему миру, она также показывает предварительный просмотр.

Используйте комбинацию Ctrl + F для Windows и Linux для поиска в текущем файле.

Используйте Shift + Shift (Double Tap Shift) для Windows и Linux для поиска файла проекта проекта.

И для всех нас, использующих ключевые слова Eclipse, ярлык – Ctrl + H. Ожидайте ограниченные возможности по сравнению с затмением или вы будете разочарованы.

То, что вы хотите достичь, это то, что я считаю:

  • Cmd + O для классов.
  • Cmd + shift + O для файлов.
  • Cmd + alt + O для символов. «Прекрасный ярлык!»

Помимо shift + cmd + f для поиска в пути && двойной сдвиг для поиска в любом месте. Играйте с теми, и вы будете знать, что удовлетворяет ваши потребности.

В Android Studio на компьютере под управлением Windows или Linux используйте сочетание Ctrl + Shift + R для поиска и замены любой строки во всем проекте.

Используйте комбинацию Ctrl + Alt + F в Ubuntu.

Источник

Использование Android Search Dialog. Пример простого приложения

Данная статья предназначена для тех, кто уже написал свой HelloWorld для Android и знает, что такое Activity и Intent, а так же где находится манифест, и зачем нужны layout’ы. В противном случае, можно ознакомиться с этим материалом, например, на developer.android.com.

В статье описывается создание несложного приложения, которое использует механизм реализации поиска, основанный на возможностях встроенного фреймворка. После прочтения вы также сможете настроить свое приложение таким образом, чтобы оно осуществляло поиск по данным, используя стандартный Android Search Dialog.

Немного теории

Android Search Dialog (далее — «диалог поиска») управляется с помощью поискового фреймворка. Это означает, что разработчику не нужно задумываться над тем как его нарисовать или как отловить поисковый запрос. За вас эту работу сделает SearchManager.

Итак, когда пользователь запускает поиск, SearchManager создает Intent, и направляет его к Activity, которое отвечает за поиск данных (при этом сам запрос помещается в экстры). То есть по сути в приложении должно быть хотя бы одно Activity, которое получает поисковые Intent’ы, выполняет поиск, и предоставляет пользователю результаты. Для реализации потребуется следующее:

  • Конфигурационный xml файл (в нем содержится информация о диалоге)
  • Activity, которое будет получать поисковые запросы, выполнять поиск и выводить результаты на экран
  • Механизм вызова поискового диалога (так как не все устройства с Android на борту имеют на корпусе кнопку поиска)
Читайте также:  Экран блокировки андроид как у айфона

Конфигурационный файл

xml version =»1.0″ encoding =»utf-8″ ? >
searchable xmlns:android =»http://schemas.android.com/apk/res/android»
android:label =»@string/app_name»
android:hint =»@string/search_hint»
>
searchable >

* This source code was highlighted with Source Code Highlighter .

Обязательным атрибутом является только android:label, причем он должен ссылаться на строку, которая является такой же, что и название приложения. Второй атрибут, android:hint используется для отображения строки в пустом диалоге. Например, это может быть «Поиск по Видео» или «Поиск контактов» и т.п. Этот атрибут указывает на то, по каким данным осуществляется поиск. Также важно знать, что элемент searchable поддерживает множество других атрибутов, подробнее можно прочесть Здесь.

Создаем Activity

Минимально, всё что нам нужно от пользовательского интерфейса Activity — это список для вывода результатов поиска и механизм вызова поискового диалога. Так и сделаем, добавив только поле для ввода текста и кнопку, чтобы мы сами могли заполнять базу. Забегая вперед, скажу, что данные будем хранить в БД SQLite.

Опишем интерфейс Activity следующим образом (файл находится в res/layout/main.xml).

xml version =»1.0″ encoding =»utf-8″ ? >
LinearLayout xmlns:android =»http://schemas.android.com/apk/res/android»
android:orientation =»vertical»
android:layout_width =»fill_parent»
android:layout_height =»fill_parent» >
LinearLayout
android:orientation =»horizontal»
android:layout_width =»fill_parent»
android:layout_height =»wrap_content»
android:gravity =»top» >
EditText
android:id =»@+id/text»
android:layout_width =»wrap_content»
android:layout_height =»wrap_content»
android:hint =»@string/text»
android:layout_weight =»100.0″/>
Button
android:id =»@+id/add»
android:layout_width =»wrap_content»
android:layout_height =»wrap_content»
android:text =»@string/add»/>
LinearLayout >
ListView
android:id =»@android:id/list»
android:layout_width =»fill_parent»
android:layout_height =»wrap_content»/>
TextView
android:layout_gravity =»left»
android:id =»@android:id/empty»
android:layout_width =»fill_parent»
android:layout_height =»fill_parent»
android:text =»@string/no_records»/>
LinearLayout >

* This source code was highlighted with Source Code Highlighter .

Выглядит следующим образом:

Также нам понадобится layout для вида элемента списка, опишем его простейшим образом (файл находится в res/layout/record.xml)

xml version =»1.0″ encoding =»utf-8″ ? >
TextView
android:id =»@+id/text1″
xmlns:android =»http://schemas.android.com/apk/res/android»
android:layout_width =»wrap_content»
android:layout_height =»wrap_content»
/>

* This source code was highlighted with Source Code Highlighter .

Также, не забываем про файл ресурсов, где хранятся наши строки (файл в res/values/strings.xml)

xml version =»1.0″ encoding =»utf-8″ ? >
resources >
string name =»app_name» > SearchExample string >
string name =»add» > Add string >
string name =»text» > Enter text string >
string name =»no_records» > There are no records in the table string >
string name =»search_hint» > Search the records string >
string name =»search» > Search string >
resources >

* This source code was highlighted with Source Code Highlighter .

xml version =»1.0″ encoding =»utf-8″ ? >
manifest xmlns:android =»http://schemas.android.com/apk/res/android»
package =»com.example.search»
android:versionCode =»1″
android:versionName =»1.0″ >
application android:icon =»@drawable/icon» android:label =»@string/app_name» >
activity android:name =».Main»
android:label =»@string/app_name» >
intent-filter >
action android:name =»android.intent.action.MAIN»/>
category android:name =»android.intent.category.LAUNCHER»/>
intent-filter >
intent-filter >
action android:name =»android.intent.action.SEARCH»/>
intent-filter >
meta-data
android:name =»android.app.searchable»
android:resource =»@xml/searchable»
/>
activity >

application >
uses-sdk android:minSdkVersion =»5″/>

* This source code was highlighted with Source Code Highlighter .

Сейчас, вы уже можете проверить, все ли вы сделали правильно. Вызвать диалог на эмуляторе можно, например, нажав кнопку поиска. Ну или если вы проверяете на девайсе, то зажав «Меню». Выглядеть должно примерно так:

Выполнение поиска

Получение запроса

Так как SearchManager посылает Intent типа Search нашему Activity, то всё что нужно сделать это проверить на Intent этого типа при старте Activity. Тогда, если мы получаем нужный Intent, то можно извлекать из него экстру и выполнять поиск.

Поиск данных

Так как тип структуры хранения данных для разных приложений может различаться, то и методы для них свои. В нашем случае, проще всего выполнить запрос по таблице БД SQLite запросом LIKE. Конечно, лучше использовать FTS3, он значительно быстрее, подробнее о FTS3 можно прочесть на сайте SQLite.org. В идеале, также нужно всегда рассчитывать, что поиск может занять продолжительное время, поэтому можно создать какой-нибудь ProgressDialog, чтобы у нас не завис интерфейс, и чтобы пользователь знал, что приложение работает.

Читайте также:  Виджет рамок для андроид
Вывод результатов

Вообще вывод результатов — это проблема UI, но так как мы используем ListView, то для нас проблема решается простым обновлением адаптера.

Исходный код

Наконец, привожу полный исходный код двух классов с комментариями. Первый — Main, наследник ListActivity, он используется для наполнения БД и вывода результатов. Второй класс — RecordsDbHelper, он реализует интерфейс для взаимодействия с БД. Самые важные методы — добавление записей и поиск совпадений, с помощью запроса LIKE.

import android.app.ListActivity;
import android.app.SearchManager;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.SimpleCursorAdapter;

public class Main extends ListActivity <
private EditText text;
private Button add;
private RecordsDbHelper mDbHelper;

@Override
public void onCreate(Bundle savedInstanceState) <
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Создаем экземпляр БД
mDbHelper = new RecordsDbHelper( this );
//Открываем БД для записи
mDbHelper.open();
//Получаем Intent
Intent intent = getIntent();
//Проверяем тип Intent
if (Intent.ACTION_SEARCH.equals(intent.getAction())) <
//Берем строку запроса из экстры
String query = intent.getStringExtra(SearchManager.QUERY);
//Выполняем поиск
showResults(query);
>

add = (Button) findViewById(R.id.add);
text = (EditText) findViewById(R.id.text);
add.setOnClickListener( new View.OnClickListener() <
public void onClick(View view) <
String data = text.getText().toString();
if (!data.equals( «» )) <
saveTask(data);
text.setText( «» );
>
>
>);
>

private void saveTask( String data) <
mDbHelper.createRecord(data);
>

private void showResults( String query) <
//Ищем совпадения
Cursor cursor = mDbHelper.fetchRecordsByQuery(query);
startManagingCursor(cursor);
String [] from = new String [] < RecordsDbHelper.KEY_DATA >;
int [] to = new int [] < R.id.text1 >;

SimpleCursorAdapter records = new SimpleCursorAdapter( this ,
R.layout.record, cursor, from , to);
//Обновляем адаптер
setListAdapter(records);
>
//Создаем меню для вызова поиска (интерфейс в res/menu/main_menu.xml)
public boolean onCreateOptionsMenu(Menu menu) <
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return true ;
>

public boolean onOptionsItemSelected(MenuItem item) <
switch (item.getItemId()) <
case R.id.search_record:
onSearchRequested();
return true ;
default :
return super.onOptionsItemSelected(item);
>
>
>

* This source code was highlighted with Source Code Highlighter .

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class RecordsDbHelper <

public static final String KEY_DATA = «data» ;
public static final String KEY_ROWID = «_id» ;

private static final String TAG = «RecordsDbHelper» ;
private DatabaseHelper mDbHelper;
private SQLiteDatabase mDb;

private static final String DATABASE_CREATE = «CREATE TABLE records(_id INTEGER PRIMARY KEY AUTOINCREMENT, »
+ «data TEXT NOT NULL);» ;

private static final String DATABASE_NAME = «data» ;
private static final String DATABASE_TABLE = «records» ;
private static final int DATABASE_VERSION = 1;

private final Context mCtx;

private static class DatabaseHelper extends SQLiteOpenHelper <

DatabaseHelper(Context context) <
super(context, DATABASE_NAME, null , DATABASE_VERSION);
>

@Override
public void onCreate(SQLiteDatabase db) <

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) <
Log.w(TAG, «Upgrading database from version » + oldVersion + » to »
+ newVersion + «, which will destroy all old data» );
db.execSQL( «DROP TABLE IF EXISTS tasks» );
onCreate(db);
>
>

public RecordsDbHelper(Context ctx) <
this .mCtx = ctx;
>

public RecordsDbHelper open() throws SQLException <
mDbHelper = new DatabaseHelper(mCtx);
mDb = mDbHelper.getWritableDatabase();
return this ;
>

public void close() <
mDbHelper.close();
>

//Добавляем запись в таблицу
public long createRecord( String data) <
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_DATA, data);
return mDb.insert(DATABASE_TABLE, null , initialValues);
>

//Поиск запросом LIKE
public Cursor fetchRecordsByQuery( String query) <
return mDb.query( true , DATABASE_TABLE, new String [] < KEY_ROWID,
KEY_DATA >, KEY_DATA + » LIKE» + «‘%» + query + «%'» , null ,
null , null , null , null );
>
>

* This source code was highlighted with Source Code Highlighter .

Источник

Оцените статью