Jump to content
  • ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By jrxxjr
      Sou iniciante em Android, e fiz uma pequena aplicação Android de teste, usando Java, para aprender a utilizar um ListView com botões, e tive um problema. Os botões não funcionam direito, as vezes eu clico em cima do Edit, ele muda a mensagem para clicado, "Edit", confirmando que eu cliquei ai. Mas tem vezes que eu clico no botão Delete, e depois no botão Edit, e o texto não é mudado, ou seja o evento click não funcionou, se eu coloco um break point, no código-fonte, onde está entrando no evento setOnItemClickListener. Mas a mensagem exibida, não está correta.
      E tem um outro erro, de funcionamento do AlertDialog, da mensagem de confirmação de deleção.
      O código-fonte está abaixo.
      Por favor, alguém poderia me ajudar ?
       
      AgendaActivity.java
      package com.test.android.view; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import com.test.android.model.Agenda; import com.test.android.util.Util; public class AgendaActivity extends AppCompatActivity { ListView listview; MyArrayAdapter agendaArrayAdapter; ArrayList<AgendaTo> agendaArray = new ArrayList<AgendaTo>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_agenda); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); agendaArray.add(new AgendaTo(sdf.format(new Date()), Util.fillSpaces("Nick", 50))); agendaArray.add(new AgendaTo(sdf.format(new Date()), Util.fillSpaces("John", 50))); agendaArray.add(new AgendaTo(sdf.format(new Date()), Util.fillSpaces("Anthony", 50))); agendaArray.add(new AgendaTo(sdf.format(new Date()), Util.fillSpaces("James", 50))); agendaArray.add(new AgendaTo(sdf.format(new Date()), Util.fillSpaces("Jack", 50))); agendaArray.add(new AgendaTo(sdf.format(new Date()), Util.fillSpaces("Jeremy", 50))); agendaArray.add(new AgendaTo(sdf.format(new Date()),Util.fillSpaces("Long", 50))); agendaArrayAdapter = new MyArrayAdapter(AgendaActivity.this, R.layout.list_item, agendaArray); listview = (ListView) findViewById(R.id.listView); listview.setItemsCanFocus(false); listview.setAdapter(agendaArrayAdapter); listview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, final int position, long id) { Toast.makeText(AgendaActivity.this, "List Item Clicked:" + position, Toast.LENGTH_LONG) .show(); } }); } } MyArrayAdapter.java
      package com.test.android.view; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import java.text.SimpleDateFormat; import java.util.ArrayList; public class MyArrayAdapter extends ArrayAdapter<AgendaTo> { Context context; int layoutResourceId; ArrayList<AgendaTo> agendas = new ArrayList<AgendaTo>(); public MyArrayAdapter(Context context, int layoutResourceId, ArrayList<AgendaTo> agendas) { super(context, layoutResourceId, agendas); this.layoutResourceId = layoutResourceId; this.context = context; this.agendas = agendas; } @Override public View getView(int position, View convertView, ViewGroup parent) { View item = convertView; AgendaWrapper agendaWrapper = null; if (item == null) { LayoutInflater inflater = ((Activity) context).getLayoutInflater(); item = inflater.inflate(layoutResourceId, parent, false); agendaWrapper = new AgendaWrapper(); agendaWrapper.nome = (TextView) item.findViewById(R.id.textNome); agendaWrapper.data = (TextView) item.findViewById(R.id.textData); agendaWrapper.edit = (Button) item.findViewById(R.id.btnEdit); agendaWrapper.delete = (Button) item.findViewById(R.id.btnDelete); item.setTag(agendaWrapper); } else { agendaWrapper = (AgendaWrapper) item.getTag(); } AgendaTo agenda = agendas.get(position); agendaWrapper.nome.setText(agenda.getNome()); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); agendaWrapper.data.setText(sdf.format(agenda.getData())); agendaWrapper.edit.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(context, "Edit", Toast.LENGTH_LONG).show(); } }); final int absolutePsition = position; final AgendaWrapper itemDelete = agendaWrapper; final ViewGroup viewGroup = parent; agendaWrapper.delete.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(context, "Delete " + absolutePsition, Toast.LENGTH_LONG).show(); AlertDialog diaBox = AskOption(itemDelete, absolutePsition, viewGroup); diaBox.show(); } }); return item; } private AlertDialog AskOption(AgendaWrapper agendaWrapper, int position, final ViewGroup viewGroup) { final int deletePosition = position; AlertDialog myQuittingDialogBox = new AlertDialog.Builder(context) .setTitle("Delete") .setMessage("Do you want to Delete") .setPositiveButton("Delete", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { agendas.remove(deletePosition); refreshListView(agendas, viewGroup); dialog.dismiss(); } private void refreshListView(final ArrayList<AgendaTo> agendas, final ViewGroup viewGroup) { final MyArrayAdapter myArrayAdapter = new MyArrayAdapter(context, R.layout.list_item, agendas); final LayoutInflater inflater = ((Activity) context).getLayoutInflater(); final View view = inflater.inflate(layoutResourceId, viewGroup, false); final ListView listview = (ListView) view.findViewById(R.id.listView); listview.setAdapter(myArrayAdapter); } }) .setNegativeButton("cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .create(); return myQuittingDialogBox; } static class AgendaWrapper { TextView nome; TextView data; Button edit; Button delete; } } list_item.xml
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="4dp" tools:context=".AgendaActivity" > <TextView android:id="@+id/textNome" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:text="Nome:" android:width="50dp" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/textData" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textData" android:layout_alignTop="@id/textNome" android:layout_alignRight="@id/textNome" android:layout_alignParentLeft="true" android:layout_marginTop="5dp" android:width="50dp" android:text="Data:" android:textAppearance="?android:attr/dateTextAppearance" android:textSize="16sp" /> <Button android:id="@+id/btnEdit" android:layout_width="80dp" android:layout_height="40dp" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:background="#99CC" android:focusable="false" android:focusableInTouchMode="false" android:text="Edit" android:textColor="#FFFFFF" /> <Button android:id="@+id/btnDelete" android:layout_width="80dp" android:layout_height="40dp" android:layout_alignParentRight="true" android:layout_below="@+id/btnEdit" android:layout_marginTop="3dp" android:background="#99CC" android:focusable="false" android:focusableInTouchMode="false" android:text="Delete" android:textColor="#FFFFFF" /> </RelativeLayout> activity_agenda.xml
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#990044" tools:context="com.test.android.view.AgendaActivity" > <TextView android:id="@+id/listLabel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:text="Touch List" android:textColor="#FFFFFF" android:textSize="25sp" /> <ListView android:id="@+id/listView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@+id/listLabel" android:layout_marginTop="5dp" android:cacheColorHint="#FFFFFF" /> </RelativeLayout>  
    • By thekingowl
      Mala Vermelha
       
      Depois de quase dois anos de desenvolvimento, tive o prazer de ter meu jogo finalmente lançado na Play Store. Ele foi desenvolvido em uma plataforma para jogos browser, chamada Twine. Com algumas linhas de código em Java para adequar ao Mobile e convertido através do PhoneGap, consegui fazer a versão mobile para Android.
       
      Em "Mala Vermelha" você viverá a história da Policial Muriel. Entendiada na cidade pequena, Muriel tem sua vida alterada quando uma mala vermelha aparece na meio da cidade. É o início da aventura de Muriel, tentando capturar um assassino, antes que ele termine seu plano. Você tomará as decisões durante a investigação, levando Muriel aos mais diversos locais da cidade, em busca de pistas para desvendar o padrão do assassino. Enfrente não só o assassino, mas como os cidadãos da cidade.
       
      Totalmente em português, "Mala Vermelha" faz com que cada detalhe apresentado na história, possa ser utilizado para desvendar o enigma do assassino. Cada decisão a levará a um destino diferente. Com múltiplos finais, "Mala Vermelha" fará com que você escolha qual o melhor desfecho para o seu estilo de jogo. Não existe certo ou errado. Você decide.
       
      Mala Vermelha na Play Store: https://bit.ly/2XSfImx
      Blog: https://thekingowlgames.blogspot.com/2020/04/mala-vermelha_20.html
    • By Igor Ricardo
      Olá, trabalho com photoshop e illustrator  a um tempo e sou apaionado por game, qero criar mas n tenho capacidade de faze-lo atualmente mas como tenho conhecimento de algum app para criação de mapa procuro entrar nessa area lembrando que e isométrica ou 2d.
       
      Zap (73) 9 9126-6873
    • By Motta
      Google e Oracle decidem na Suprema Corte briga judicial sobre Android
    • By udkultimate
      Fala galera, blz!!!
       
      Todos vocês aqui me conhecem pelo meu projeto do Port da UDK Engine / UE3 para PS3 e Xbox360: https://forum.imasters.com.br/topic/584217-atualização-da-minha-engine-udk-para-ps3-hen/
       
      E como muitos de vocês sabem, eu estou utilizando essa minha engine para desenvolver meu primeiro game comercial, que pretendo lançar em seguida. Este game trata sobre a Resistência Palestina contra a Ocupação Militar Israelense. Eu sei que esse tema é um tema muito delicado, pois existem vítimas dos dois lados dessa guerra, porém, peço que vocês leiam com atenção esse post para compreender que esse meu game NÃO É "PROPAGANDA TERRORISTA".
       
      Aliás, eu enviei esse meu game para o Ministério da Justiça e Segurança Pública para Aprovação e Classificação Indicativa. Meu projeto foi aprovado e recebeu a classificação indicativa para maiores de 18 anos. Neste link vocês podem verificar essa informação: http://portal.mj.gov.br/ClassificacaoIndicativa/jsps/JogosJustificativaForm.do?select_action=&tbClassificacaoJogo_Analise=0&tbdocumento_numerodoc=08017.001703/2019-04
       

       
      Resumo sobre o Tema do Jogo:
       
      Fursan al-Aqsa - Cavaleiros da Mesquita de al-Aqsa é um jogo de ação em terceira pessoa que retrata a Resistência do Povo Palestino contra a Ocupação Militar Israelense, através da história fictícia de um jovem estudante palestino chamado Ahmad al-Ghazzawi, que foi injustamente torturado e preso por soldados israelenses durante 5 anos, teve toda a sua família morta em um ataque aéreo israelense e agora depois de sair da prisão, ele busca por vingança contra aqueles que o torturaram, mataram a sua família e roubaram a sua pátria.
       

       
      Resumo sobre a História do Jogo:
       
      Ahmad é um jovem muçulmano pacífico, estudante de Bioengenharia, cujo sonho era se dedicar a criação de próteses para ajudar os feridos de guerra a terem uma melhor qualidade de vida. Ele sempre desejou a paz entre Palestinos e Israelenses pelo fato de ver dia a dia como pessoas inocentes, dos dois lados, sofriam com a guerra. Certo dia, ao retornar da Universidade, Ahmad, por decreto do destino, se envolveu, contra sua vontade, em um Protesto onde milhares de Palestinos estavam jogando pedras contra os Soldados Israelenses, pedindo pelo fim da ocupação militar. Ahmad e muitos outras pessoas foram presas nesse protesto e levadas para interrogatório na Delegacia Israelense. As pessoas que estavam de fato envolvidas no protesto, foram executadas, porém, Ahmad, teve sua vida poupada pois as autoridades Israelenses não encontraram nenhum registro de envolvimento de Ahmad em atividades contra soldados Israelenses. Mas ele foi preso, injustamente e sofreu na prisão todos os tipos de torturas e humilhações que um homem pode sofrer. Cinco anos se passaram e Ahmad continuava a sofrer injustamente na prisão, sendo impedido de receber visitas de amigos e familiares. Quando finalmente ele foi autorizado a receber visitas, recebeu o seu primo, trazendo as piores notícias que ele jamais poderia esperar. Ahmad foi informado de que toda sua família foi morta em um ataque aéreo israelense, inclusive sua noiva. Daquele momento então, aquele jovem uma vez pacífico, se transformou em um homem sedento por vingança, e estava decidido a se vingar do Exército Israelense no momento que saísse da prisão.
       
      Um dia antes de sair da prisão, Ahmad recebeu um novo companheiro de cela, um homem chamado Abu Ubayda, cuja condenação seria a pena de morte, no dia seguinte, o mesmo dia em que Ahmad conseguiria sua liberdade. Abu Ubayda contou sua história para Ahmad, de que ele era um Ex Combatente da Resistência Palestina que decidiu formar um novo exército de soldados palestinos com o objetivo de pôr fim a ocupação militar Israelense, o "Fursan al-Aqsa (traduzido para o português: Os Cavaleiros da Mesquita de al-Aqsa)", pois os tradicionais movimentos de Resistência Palestina, com o passar dos anos se corromperam e abandonaram a causa da luta pela Libertação da Palestina.
       
      Esse novo grupo estava preparando um grande ataque a pontos estratégicos do Exército Israelense nas terras ocupadas da Palestina com o objetivo de pôr fim a ocupação militar e libertar a Palestina, a operação "Mohammed al-Ayash" (em homenagem ao nome do grande líder da Resistência Palestina). Mas infelizmente um dos membros do Fursan al-Aqsa era um espião israelense infiltrado, que armou uma cilada para os verdadeiros integrantes do grupo, cilada essa que ocorreu no mesmo dia da operação "Mohammed al-Ayash" e que resultou na morte de todos os soldados do Fursan al-Aqsa e na prisão do líder, Abu Ubayda, agora ferido e condenado à pena de morte.
       
      Ahmad, ao ouvir a história de Abu Ubayda, decidiu completar essa missão por conta própria, mesmo sabendo dos riscos dessa operação, com a consciência de que esta missão pode resultar em sua morte. E no momento que ele saiu da prisão, ele recebeu de Abu Ubayda todas as instruções da operação "Mohammed al-Ayash" e a partir daquele momento, Ahmad estava pronto para completar a operação e se vingar daqueles que o torturaram, mataram a sua família e roubaram a sua pátria.
       

       
      Continua na próxima postagem
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.