Ir para conteúdo
Euler Belfortt

Help Slider Url Android

Recommended Posts

Olá pessoal alguém pode me ajudar?

Preciso abrir uma url ao clicar em uma imagem dentro de um textsliderview

Se alguém puder me ajudar fico grato.

textSliderView.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() {

                                    @Override
                                    public void onSliderClick(BaseSliderView slider) {

                                        String url = "http://www.google.com"; // Preciso passar a slider_url aqui
                                        Toast.makeText(getActivity(), "ID '" + name.get("slider_url")+"' url '"+ name.get("slider_url") + "' url recebida.", Toast.LENGTH_LONG).show();
                                        Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                                        startActivity(browserIntent);
                                    }
                                });

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Euler Belfortt
      Olá bom dia.
       
      Tenho uma aplicação android na qual tenho um slider que pego os dados do webserver php.
      Gostaria de saber como faço para abrir a url vinda do banco de dados, quando a imagem for clicada.
       
      Este é meu código eu fiz o código pegando como base uma URL fixa de uma variavel local. mas preciso pegar o a url que vem do banco seria a var = slider_url
      Se alguém puder me ajudar fico muito grato!
      private void makeGetSliderRequest() {         JsonArrayRequest req = new JsonArrayRequest(BaseURL.GET_SLIDER,                 new Response.Listener<JSONArray>() {                     @Override                     public void onResponse(JSONArray response) {                         Log.d(TAG, response.toString());                         try {                             // Parsing json array response                             // loop through each json object                             // arraylist list variable for store data;                             final ArrayList<HashMap<String, String>> listarray = new ArrayList<>();                             for (int i = 0; i < response.length(); i++) {                                 JSONObject jsonObject = (JSONObject) response                                         .get(i);                                 final HashMap<String, String> url_maps = new HashMap<String, String>();                                 url_maps.put("slider_title", jsonObject.getString("slider_title"));                                 url_maps.put("slider_image", BaseURL.IMG_SLIDER_URL + jsonObject.getString("slider_image")); url_maps.put("slider_url", BaseURL.IMG_SLIDER_URL + jsonObject.getString("slider_url"));                                 listarray.add(url_maps);                             }                             for (HashMap<String, String> name : listarray) {                                 final TextSliderView textSliderView = new TextSliderView(getActivity());                                 // initialize a SliderLayout                                 textSliderView                                         .description(name.get("slider_title"))                                         .image(name.get("slider_image"))                                         .setScaleType(BaseSliderView.ScaleType.Fit);                                 //adiciono o slider title no slider                                 textSliderView.bundle(new Bundle());                                 textSliderView.getBundle()                                         .putString("extra", name.get("slider_title"));                                 imgSlider.addSlider(textSliderView);                                 textSliderView.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() {                                     @Override // Aqui eu capturo o clique na imagem e abro a url. // Preciso pegar a url desta string (slider_url) e inserir no lugar da string url                                     public void onSliderClick(BaseSliderView slider) {                                         String url = "http://www.google.com.br";                                         Toast.makeText(getActivity(), "clicou:", Toast.LENGTH_SHORT).show();                                         Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));                                         startActivity(browserIntent);                                     }                                 });                             }                         } catch (JSONException e) {                             e.printStackTrace();                             Toast.makeText(getActivity(),                                     "Error: " + e.getMessage(),                                     Toast.LENGTH_LONG).show();                         }                         hidepDialog();                     }                 }, new Response.ErrorListener() {             @Override             public void onErrorResponse(VolleyError error) {                 VolleyLog.d(TAG, "Error: " + error.getMessage());                 Toast.makeText(getActivity(),                         error.getMessage(), Toast.LENGTH_SHORT).show();                 hidepDialog();             }         });         // Adding request to request queue         AppController.getInstance().addToRequestQueue(req);     }  
    • Por cristianomg
      E ae pessoal, gostaria de uma orientação sobre um erro que estou tomando e não consegui contornar corretamente, meu conhecimento com android é de basico autodidata.
      Bom o cenário é eu ger uma lista vinda de uma api que traz dados do banco de dados , imagem, nome de cidade e descrição.
      Quero que ao clicar seja aberta uma activity onde a mesma exiba os dados da cidade selecionada exibindo a imagem maior, nome cidade, descrição e data de saida do turismo.
      Pois bem quando eu clico num item da lista tomo o erro:
       
      java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference at android.content.ComponentName.<init>(ComponentName.java:77) at android.content.Intent.<init>(Intent.java:4280) at garagetalke.com.laftturismo.adaptador.GramadoAdapter$GramadoHolder.onClick(GramadoAdapter.java:97)  
      Eu uso fragmento para gerar a lista no recyclerView e criei um activity DetalhesLugares com o seu xml certinho para exibir os dados da cidade que eu cliquei, o meu fragmento que gera a lista de itens esta abaixo:
       
      fragment_lista_lugares_gramado.java
      public class fragment_lista_lugares_gramado extends Fragment implements Response.Listener<JSONObject>, Response.ErrorListener{ private static final String ARG_PARAM1 = "param1"; private static final String ARG_PARAM2 = "param2"; private String mParam1; private String mParam2; RecyclerView recyclerAnuncio; ArrayList<Lugares> listaLugares; ProgressDialog progresso; RequestQueue request; JsonObjectRequest jsonObjectReq; private fragment_lista_lugares_gramado.OnFragmentInteractionListener mListener; public fragment_lista_lugares_gramado() { // Required empty public constructor } public static fragment_lista_lugares_gramado newInstance(String param1, String param2) { fragment_lista_lugares_gramado fragment = new fragment_lista_lugares_gramado(); Bundle args = new Bundle(); args.putString(ARG_PARAM1, param1); args.putString(ARG_PARAM2, param2); fragment.setArguments(args); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View vista = inflater.inflate(R.layout.places_recycler_list, container, false); listaLugares=new ArrayList<>(); recyclerAnuncio= (RecyclerView) vista.findViewById(R.id.listRecycler); recyclerAnuncio.setLayoutManager(new LinearLayoutManager(this.getContext())); recyclerAnuncio.setHasFixedSize(true); request= Volley.newRequestQueue(getContext()); carregarWEBService(); //aqui chamo minha API que me traz os dados do banco corretamente e exibe no App return vista; } private void carregarWEBService() { ....minha API que faz a busca } // TODO: Rename method, update argument and hook method into UI event public void onButtonPressed(Uri uri) { if (mListener != null) { mListener.onFragmentInteraction(uri); } } @Override public void onDetach() { super.onDetach(); mListener = null; } @Override public void onErrorResponse(VolleyError error) { progresso.hide(); Toast.makeText(getContext(), "Não foi possível listar os lugares " +error.toString() , Toast.LENGTH_SHORT).show(); Log.i("ERROR", error.toString()); } @Override public void onResponse(JSONObject response) { progresso.hide(); Lugares lugares = null; Retorno do meu json da API - OK try { for(int i=0; i<json.length();i++){ lugares = new Lugares(); JSONObject jsonObject = null; jsonObject = json.getJSONObject(i); lugares.setId(jsonObject.optString("id")); //seto todos os dados de retorno - OK listaLugares.add(lugares); } progresso.hide(); GramadoAdapter adapter = new GramadoAdapter(listaLugares, fragment_lista_lugares_gramado.this); recyclerAnuncio.setAdapter(adapter); }catch (JSONException e){ e.printStackTrace(); progresso.hide(); Toast.makeText(getContext(), "Não foi possível listar os lugares " +response , Toast.LENGTH_SHORT).show(); } } public interface OnFragmentInteractionListener { // TODO: Update argument type and name void onFragmentInteraction(Uri uri); } }  
      Aqui esta meu Adapter : GramadoAdapter.java
       
      public class GramadoAdapter extends RecyclerView.Adapter<GramadoAdapter.GramadoHolder> { ArrayList<Lugares> listaLugares = new ArrayList<>(); fragment_lista_lugares_gramado ctx; Context fragment_lista_lugares_gramado; public GramadoAdapter(ArrayList<Lugares> listaLugares, fragment_lista_lugares_gramado ctx ){ this.listaLugares = listaLugares; this.ctx = ctx; } @NonNull @Override public GramadoHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_lugares,parent,false); GramadoHolder gramadoViewHolder = new GramadoHolder(view, fragment_lista_lugares_gramado,listaLugares); return gramadoViewHolder; } @Override public void onBindViewHolder(@NonNull GramadoHolder holder, int position) { Lugares LUG = listaLugares.get(position); holder.id.setText(LUG.getId().toString()); holder.cidade.setText(LUG.getCidade()); holder.descricao.setText(LUG.getDescricao()); holder.dataSaida.setText("Quando? "+(LUG.getDataSaida())); if(listaLugares.get(position).getImagem() != null){ holder.idImagem.setImageBitmap(LUG.getImagem()); }else{ holder.idImagem.setImageResource(R.drawable.publicacao_sem_foto); } } @Override public int getItemCount() { return listaLugares.size(); } public class GramadoHolder extends RecyclerView.ViewHolder implements View.OnClickListener { TextView id, cidade, descricao, dataSaida, lugaresOnibus, valor, rating; ImageView idImagem; ArrayList<Lugares> listaLugares = new ArrayList<Lugares>(); Context ctx; Context fragment_lista_lugares_gramado; public GramadoHolder(View view, Context fragment_lista_lugares_gramado, ArrayList<Lugares> listaLugares) { super(view); this.listaLugares = listaLugares; view.setOnClickListener(this); id = (TextView) view.findViewById(R.id.id_place); cidade = (TextView) view.findViewById(R.id.cidade_place); descricao = (TextView) view.findViewById(R.id.descricao_place); dataSaida = (TextView) view.findViewById(R.id.datasaida_place); idImagem = view.findViewById(R.id.place_image); } @Override public void onClick(View v) { int position = getAdapterPosition(); Lugares lugares = this.listaLugares.get(position); //Eu acho que aqui esta meu problema mas nao sei o que pode ser...tipo nao abre a activity detalhes //ja tentei getActivity(), getApplication() e outras coisas tb, como é o fragmento que gera a lista //então nao o que fazer pra instanciar Intent intent = new Intent(fragment_lista_lugares_gramado, DetalhesLugares.class); intent.putExtra("tvImagem",lugares.getImagem()); intent.putExtra("tvCidade",lugares.getCidade()); intent.putExtra("tvdescricao",lugares.getDescricao()); this.fragment_lista_lugares_gramado.startActivity(intent); } } }  
      DetalhesActivity.java
      ImageView imageView; TextView text_Cidade, text_Descricao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_detalhes_lugares); imageView = (ImageView) findViewById(R.id.tvImagem); text_Cidade = (TextView) findViewById(R.id.tvCidade); text_Descricao = (TextView) findViewById(R.id.tvDesricao); imageView.setImageResource(getIntent().getIntExtra("tvImagem",00)); text_Cidade.setText("Cidade: "+getIntent().getStringExtra("tvCidade")); text_Descricao.setText("Descrição: "+getIntent().getStringExtra("tvdescricao")); }   Alguém sabe me orientar do que fazer pra conseguir?
       
    • Por kathsystems
      Olá,
       
      Pessoal estou tentando criar um arquivo xml em tempo de execução no Android: "CliendDataSet.SaveToFile('/data/data/App/files/Arquivo.xml');" .Não da erro mas não cria o arquivo.
       
      Meu Mainfast:
       
      <?xml version="1.0" encoding="utf-8"?>
      <!-- BEGIN_INCLUDE(manifest) -->
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              package="%package%"
              android:versionCode="%versionCode%"
              android:versionName="%versionName%"
              android:installLocation="%installLocation%">
          <!-- This is the platform API where NativeActivity was introduced. -->
          <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" />
          String[] permissoes = new String[]{
              Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_CONTACTS,};
              PermissionUtils.validate(this, 0, permissoes);
      <%uses-permission%>
          <uses-permission android:name="android.permission.INTERNET" />
          <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
          <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
          <uses-permission android:name="android.permission.WRITE_OWNER_DATA" />
          <uses-permission android:name="android.permission.READ_OWNER_DATA" />
          <uses-feature android:glEsVersion="0x00020000" android:required="True"/>
          <application android:persistent="%persistent%"
              android:restoreAnyVersion="%restoreAnyVersion%"
              android:label="%label%"
              android:debuggable="%debuggable%"
              android:largeHeap="%largeHeap%"
              android:icon="%icon%"
              android:theme="%theme%"
              android:hardwareAccelerated="%hardwareAccelerated%">
       
      alguém sabe onde estou errando?
       
    • Por Motta
      Vulnerabilidade perigosa impacta todos os smartphones Android
    • Por Luis Felipe Rebecca
      Galera estou tendo um problema já faz algum tempo e não estou conseguindo uma solução.
       
      Estou utilizando o Firebase como banco de dados e não estou conseguindo usar a autenticação dele.
       
      Fiz meus códigos com auxilio de alguns cursos online e ele está funcional, aparentemente, porem quando executo e dou inicio no processo de cadastro ele mostra a seguinte mensagem no Logcat e não registra o usuário no banco:
       
      Alguém teria alguma solução? 
      06-26 07:21:39.348 29507-29507/br.com.tecmafandroid.projeto.tecmaf W/BiChannelGoogleApi: [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzal@da4f097 06-26 07:21:39.348 29507-29598/br.com.tecmafandroid.projeto.tecmaf W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found. 06-26 07:21:39.348 29507-29598/br.com.tecmafandroid.projeto.tecmaf W/GooglePlayServicesUtil: Google Play services out of date. Requires 12451000 but found 11975436 Não sei muito bem o q essa mensagem esta querendo dizer, já tentei modificar vários arquivos, mas por enquanto o "erro" persiste. 
       
      Segue os trechos de código responsáveis pela autenticação no Firebase:
       
      -Activity de cadastro usuário
      package br.com.tecmafandroid.projeto.tecmaf.activity; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; import com.google.firebase.auth.AuthResult; import com.google.firebase.auth.FirebaseAuth; import br.com.tecmafandroid.projeto.tecmaf.R; import br.com.tecmafandroid.projeto.tecmaf.config.ConfiguracaoFirebase; import br.com.tecmafandroid.projeto.tecmaf.model.Usuario; public class CadastroUsuarioActivity extends AppCompatActivity { private EditText nome; private EditText email; private EditText senha; private Button botaoCadastrar; private Usuario usuario; private FirebaseAuth autenticacao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_cadastro_usuario); nome = (EditText) findViewById(R.id.edit_cadastro_nome); email = (EditText) findViewById(R.id.edit_cadastro_email); senha = (EditText) findViewById(R.id.edit_cadastro_senha); botaoCadastrar = (Button) findViewById(R.id.bt_cadastro); botaoCadastrar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { usuario = new Usuario(); usuario.setNome(nome.getText().toString()); usuario.setEmail(email.getText().toString()); usuario.setSenha(senha.getText().toString()); cadastrarUsuario(); } }); } private void cadastrarUsuario() { autenticacao = ConfiguracaoFirebase.getFirebaseAutenticacao(); autenticacao.createUserWithEmailAndPassword( usuario.getEmail(), usuario.getSenha() ).addOnCompleteListener(CadastroUsuarioActivity.this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()){ Toast.makeText(CadastroUsuarioActivity.this,"Sucessor ao cadastrar usuario",Toast.LENGTH_LONG).show(); }else { Toast.makeText(CadastroUsuarioActivity.this,"Erro ao cadastrar usuario",Toast.LENGTH_LONG).show(); } } }); } } -build.gradle: app
      apply plugin: 'com.android.application' android { compileSdkVersion 27 defaultConfig { applicationId "br.com.tecmafandroid.projeto.tecmaf" minSdkVersion 15 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) //noinspection GradleCompatible implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'com.google.firebase:firebase-core:16.0.0' implementation 'com.google.firebase:firebase-database:15.0.0' implementation 'com.android.support:design:27.1.1' implementation 'com.github.rtoshiro.mflibrary:mflibrary:1.0.0' implementation 'com.google.firebase:firebase-auth:15.0.0' } apply plugin: 'com.google.gms.google-services' -Configuração do Firebase
      package br.com.tecmafandroid.projeto.tecmaf.config; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; public final class ConfiguracaoFirebase { private static DatabaseReference referenciaFirebase; private static FirebaseAuth autenticacao; public static DatabaseReference getFirebase(){ if (referenciaFirebase == null){ referenciaFirebase = FirebaseDatabase.getInstance().getReference(); } return referenciaFirebase; } public static FirebaseAuth getFirebaseAutenticacao(){ if (autenticacao == null){ autenticacao = FirebaseAuth.getInstance(); } return autenticacao; } } -Model usuário
      package br.com.tecmafandroid.projeto.tecmaf.model; public class Usuario { private String id; private String nome; private String email; private String senha; public Usuario(){ } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getSenha() { return senha; } public void setSenha(String senha) { this.senha = senha; } }  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.