{"id":630,"date":"2019-12-19T09:37:01","date_gmt":"2019-12-19T12:37:01","guid":{"rendered":"https:\/\/micheladrianomedeiros.com.br\/blog\/?p=630"},"modified":"2020-03-24T15:07:36","modified_gmt":"2020-03-24T18:07:36","slug":"android-5","status":"publish","type":"post","link":"https:\/\/micheladrianomedeiros.com.br\/blog\/android-5\/","title":{"rendered":"Android #5"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Neste artigo vamos tratar a pesquisa e adicionar um menu para acessar uma outra tela.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O arquivo strings.xml est\u00e1 assim no momento.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;resources>\n    &lt;string name=\"app_name\">Onde Treinar - micheladrianomedeiros.com.br&lt;\/string>\n    &lt;string name=\"app_name_reviews\">Onde Treinar - Reviews&lt;\/string>\n    &lt;string name=\"app_name_review\">Onde Treinar - Review&lt;\/string>\n    &lt;string name=\"app_short_name\">Onde Treinar&lt;\/string>\n    &lt;string name=\"menu_get_reviews\">Reviews&lt;\/string>\n    &lt;string name=\"menu_web_review\">Review Completo&lt;\/string>\n    &lt;string name=\"menu_map_review\">Local no Mapa&lt;\/string>\n    &lt;string name=\"menu_call_review\">Telefone&lt;\/string>\n    &lt;string name=\"menu_change_criteria\">Mudar Review&lt;\/string>\n    &lt;string name=\"menu_get_next_page\">Pr\u00f3xima P\u00e1gina&lt;\/string>\n    &lt;string name=\"intro_blurb_criteria\">Acesso ao Review&lt;\/string>\n    &lt;string name=\"intro_blurb_detail\">Detalhes do Review&lt;\/string>\n    &lt;string name=\"alert_label\">Voc\u00ea deve digitar o nome ou cidade antes de fazer uma pesquisa&lt;\/string>\n    &lt;string name=\"location_not_supplied_message\">&lt;\/string>\n\n    &lt;string-array name=\"types_gym\">\n        &lt;item>Todos&lt;\/item>\n        &lt;item>Academia de Dan\u00e7a&lt;\/item>\n        &lt;item>Academia de Luta&lt;\/item>\n        &lt;item>Academia de Muscula\u00e7\u00e3o&lt;\/item>\n        &lt;item>Academia de Nicho&lt;\/item>\n        &lt;item>Artes Marciais&lt;\/item>\n        &lt;item>Ballet Fitness&lt;\/item>\n        &lt;item>Boutique&lt;\/item>\n        &lt;item>Crossfit&lt;\/item>\n        &lt;item>Est\u00fadio de Pilates&lt;\/item>\n        &lt;item>Full Service&lt;\/item>\n        &lt;item>Hidrogin\u00e1stica&lt;\/item>\n        &lt;item>Low Cost&lt;\/item>\n        &lt;item>Muay Thai&lt;\/item>\n        &lt;item>Samba&lt;\/item>\n        &lt;item>Spinning&lt;\/item>\n        &lt;item>Zumba&lt;\/item>\n    &lt;\/string-array>\n&lt;\/resources>\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Crie uma activity com o nome ReviewList e na view da ReviewList digite o seguinte c\u00f3digo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?>\n&lt;LinearLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    android:layout_width=\"fill_parent\"\n    android:layout_height=\"fill_parent\"\n    android:orientation=\"vertical\">\n\n    &lt;ListView\n        android:id=\"@android:id\/list\"\n        android:layout_width=\"fill_parent\"\n        android:layout_height=\"fill_parent\"\n        android:layout_weight=\"1\"\n        android:drawSelectorOnTop=\"false\" \/>\n\n    &lt;TextView\n        android:id=\"@+id\/empty\"\n        android:layout_width=\"fill_parent\"\n        android:layout_height=\"fill_parent\"\n        android:text=\"\" \/>\n&lt;\/LinearLayout><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Agora no arquivo MainActivity.java vamos adicionar mais c\u00f3digo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Primeiro ao pesquisar academia vamos mostrar uma mensagem se o campo de academia ou local estiver vazio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A MainActivity.java ficou assim:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>package br.com.micheladrianomedeiros.ondetreinar;\n\nimport android.app.AlertDialog;\nimport android.content.DialogInterface;\nimport android.os.Bundle;\nimport android.util.Log;\nimport android.view.View;\nimport android.widget.Button;\nimport android.widget.EditText;\nimport android.widget.Spinner;\n\nimport androidx.appcompat.app.AppCompatActivity;\n\npublic class MainActivity extends AppCompatActivity {\n\n    private Spinner spinnerTypesGym;\n    private Button buttonSearchGym;\n    private EditText editTextSearchGym;\n\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n        editTextSearchGym = findViewById(R.id.search_gym);\n        spinnerTypesGym = findViewById(R.id.spinner_type_gym);\n        buttonSearchGym = findViewById(R.id.button_search_gym);\n        buttonSearchGym.setOnClickListener(buttonClickListener);\n    }\n\n    private View.OnClickListener buttonClickListener = new View.OnClickListener() {\n\n        @Override\n        public void onClick(View v) {\n            switch (v.getId()) {\n                case R.id.button_search_gym:\n                    boolean b = handleSearch();\n                    if (b) {\n                        Log.i(\"procurando\", editTextSearchGym.getText().toString());\n                        Log.i(\"tipo academia\", spinnerTypesGym.getSelectedItem().toString());\n                        Log.i(\"Buscar\", \"Vamos fazer a busca\");\n                    }\n                    break;\n                case View.NO_ID:\n                default:\n                    Log.i(\"erro\", \"nada\");\n                    break;\n            }\n        }\n    };\n\n    private boolean handleSearch() {\n        if ((editTextSearchGym.getText() == null) ||\n                editTextSearchGym.getText().toString().equals(\"\")) {\n            new AlertDialog.Builder(this).setTitle(R.string.alert_label).\n                    setMessage(R.string.location_not_supplied_message).\n                    setPositiveButton(\"Continue\",\n                            new android.content.DialogInterface.OnClickListener() {\n                                public void onClick(DialogInterface dialog, int arg1) {\n                                    \/\/ Just close alert.\n                                }\n                            }).show();\n            return false;\n        }\n        return true;\n    }\n}<\/code><\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"273\" height=\"591\" src=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/12\/androidMensagemVazia.png\" alt=\"\" class=\"wp-image-631\" srcset=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/12\/androidMensagemVazia.png 273w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/12\/androidMensagemVazia-139x300.png 139w\" sizes=\"auto, (max-width: 273px) 100vw, 273px\" \/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos agora adicionar um menu e quando clicar no item do menu abrir a tela  ReviewList.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Declare essa vari\u00e1vel: <strong>private static final int <em>MENU_GET_REVIEWS <\/em><\/strong>= Menu.<strong><em>FIRST<\/em><\/strong>;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adicione este c\u00f3digo no MainActivity.java.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    @Override\n    public boolean onCreateOptionsMenu(Menu menu) {\n        super.onCreateOptionsMenu(menu);\n        menu.add(0, this.MENU_GET_REVIEWS, 0, R.string.menu_get_reviews).setIcon(\n                android.R.drawable.ic_menu_more);\n        return true;\n    }\n\n\n    public boolean onOptionsItemSelected(MenuItem item) {\n        switch (item.getItemId()) {\n            case MENU_GET_REVIEWS:\n                Intent intent = new Intent(this, ReviewList.class);\n                startActivity(intent);\n                return true;\n        }\n        return false;\n    }<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Agora quando voc\u00ea clicar no menu na op\u00e7\u00e3o Reviews, voc\u00ea ir\u00e1 para a tela do ReviewList.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"268\" height=\"87\" src=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/12\/androidMenuReviews.png\" alt=\"\" class=\"wp-image-632\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00f3digo do arquivo styles.xml.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;resources>\n\n    &lt;!-- Base application theme. -->\n    &lt;style name=\"AppTheme\" parent=\"Theme.AppCompat.Light.DarkActionBar\">\n        &lt;!-- Customize your theme here. -->\n        &lt;item name=\"colorPrimary\">@color\/colorPrimary&lt;\/item>\n        &lt;item name=\"colorPrimaryDark\">@color\/colorPrimaryDark&lt;\/item>\n        &lt;item name=\"colorAccent\">@color\/colorAccent&lt;\/item>\n    &lt;\/style>\n\n    &lt;style name=\"intro_blurb\">\n        &lt;item name=\"android:textSize\">22sp&lt;\/item>\n        &lt;item name=\"android:textColor\">#ee7620&lt;\/item>\n        &lt;item name=\"android:textStyle\">bold&lt;\/item>\n    &lt;\/style>\n\n    &lt;style name=\"label\">\n        &lt;item name=\"android:textSize\">18sp&lt;\/item>\n        &lt;item name=\"android:textColor\">#ffffff&lt;\/item>\n    &lt;\/style>\n\n    &lt;style name=\"edit_text\">\n        &lt;item name=\"android:textSize\">16sp&lt;\/item>\n        &lt;item name=\"android:textColor\">#000000&lt;\/item>\n    &lt;\/style>\n\n    &lt;style name=\"view_text\">\n        &lt;item name=\"android:textSize\">16sp&lt;\/item>\n        &lt;item name=\"android:textColor\">#cccccc&lt;\/item>\n    &lt;\/style>\n\n    &lt;style name=\"spinner_item\">\n        &lt;item name=\"android:textSize\">16sp&lt;\/item>\n        &lt;item name=\"android:textColor\">#000000&lt;\/item>\n    &lt;\/style>\n\n    &lt;style name=\"spinner_item_dropdown\">\n        &lt;item name=\"android:textSize\">16sp&lt;\/item>\n        &lt;item name=\"android:textColor\">#000000&lt;\/item>\n    &lt;\/style>\n\n    &lt;!--  this is the style for the container ListView, not the rows -->\n    &lt;!--  the rows are defined in code, see ReviewAdapter.ReviewListView -->\n    &lt;style name=\"review_list\">\n        &lt;item name=\"android:background\">#000000&lt;\/item>\n    &lt;\/style>\n\n&lt;\/resources>\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00f3digo completo do MainActivity.java.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>package br.com.micheladrianomedeiros.ondetreinar;\n\nimport android.app.AlertDialog;\nimport android.content.DialogInterface;\nimport android.content.Intent;\nimport android.os.Bundle;\nimport android.util.Log;\nimport android.view.Menu;\nimport android.view.MenuItem;\nimport android.view.View;\nimport android.widget.Button;\nimport android.widget.EditText;\nimport android.widget.Spinner;\n\nimport androidx.appcompat.app.AppCompatActivity;\n\npublic class MainActivity extends AppCompatActivity {\n\n    private Spinner spinnerTypesGym;\n    private Button buttonSearchGym;\n    private EditText editTextSearchGym;\n\n    private static final int MENU_GET_REVIEWS = Menu.FIRST;\n\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n        editTextSearchGym = findViewById(R.id.search_gym);\n        spinnerTypesGym = findViewById(R.id.spinner_type_gym);\n        buttonSearchGym = findViewById(R.id.button_search_gym);\n        buttonSearchGym.setOnClickListener(buttonClickListener);\n    }\n\n    private View.OnClickListener buttonClickListener = new View.OnClickListener() {\n\n        @Override\n        public void onClick(View v) {\n            switch (v.getId()) {\n                case R.id.button_search_gym:\n                    boolean b = handleSearch();\n                    if (b) {\n                        Log.i(\"procurando\", editTextSearchGym.getText().toString());\n                        Log.i(\"tipo academia\", spinnerTypesGym.getSelectedItem().toString());\n                        Log.i(\"Buscar\", \"Vamos fazer a busca\");\n                    }\n                    break;\n                case View.NO_ID:\n                default:\n                    Log.i(\"erro\", \"nada\");\n                    break;\n            }\n        }\n    };\n\n    private boolean handleSearch() {\n        if ((editTextSearchGym.getText() == null) ||\n                editTextSearchGym.getText().toString().equals(\"\")) {\n            new AlertDialog.Builder(this).setTitle(R.string.alert_label).\n                    setMessage(R.string.location_not_supplied_message).\n                    setPositiveButton(\"Continue\",\n                            new android.content.DialogInterface.OnClickListener() {\n                                public void onClick(DialogInterface dialog, int arg1) {\n                                    \/\/ Just close alert.\n                                }\n                            }).show();\n            return false;\n        }\n        return true;\n    }\n\n    @Override\n    public boolean onCreateOptionsMenu(Menu menu) {\n        super.onCreateOptionsMenu(menu);\n        menu.add(0, this.MENU_GET_REVIEWS, 0, R.string.menu_get_reviews).setIcon(\n                android.R.drawable.ic_menu_more);\n        return true;\n    }\n\n\n    public boolean onOptionsItemSelected(MenuItem item) {\n        switch (item.getItemId()) {\n            case MENU_GET_REVIEWS:\n                Intent intent = new Intent(this, ReviewList.class);\n                startActivity(intent);\n                return true;\n        }\n        return false;\n    }\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Neste artigo vamos tratar a pesquisa e adicionar um menu para acessar uma outra tela. O arquivo strings.xml est\u00e1 assim no momento. Crie uma activity com o nome ReviewList e na view da ReviewList digite o seguinte c\u00f3digo: Agora no arquivo MainActivity.java vamos adicionar mais c\u00f3digo. Primeiro ao pesquisar academia vamos mostrar uma mensagem se [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":215,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34],"tags":[],"class_list":["post-630","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android"],"_links":{"self":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/comments?post=630"}],"version-history":[{"count":5,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/630\/revisions"}],"predecessor-version":[{"id":768,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/630\/revisions\/768"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media\/215"}],"wp:attachment":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media?parent=630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/categories?post=630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/tags?post=630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}