Então Gink, antes eu sempre estava adicionando o fragment e isso acho que ele estava fazendo com que o teclado sumisse ...
Não sei se seria um bug porque nunca utilizei o Sherlock ... você tentou com versões antigas do Sherlock ? mais acredito que não seja o problema dele....
Estou vendo de no onTabUnselected ou onTabSelected eu force ele fechar o teclado ...
Você conseguiu algo já?
--
Em 23 de maio de 2012 11:20, Gink Labrev <gink.labrev@gmail.com> escreveu:
Fala Diego" Agora só descobrir o porque quando o teclado ta ativo, e troca de aba ele continua aberto .... "Então está ocorrendo ? No email anterior, havia dito que não.
Será que é bug do Sherlock ?
Em 23 de maio de 2012 10:59, Diego Ampessan <ampessann@gmail.com> escreveu:Show ! funcionou ! heheheAgora só descobrir o porque quando o teclado ta ativo, e troca de aba ele continua aberto ....Te devo uma cerveja Lucio ;)
Em 23 de maio de 2012 10:16, luciofm <luciofm@gmail.com> escreveu:public TabListener(SherlockFragmentActivity activity, String tag, Bundle args) {}?
Lúcio Maciel
luciofm@gmail.com
2012/5/23 Diego Ampessan <ampessann@gmail.com>Sim,public class TabListener<T extends Fragment> implementscom.actionbarsherlock.app.ActionBar.TabListener {}Em 23 de maio de 2012 10:11, luciofm <luciofm@gmail.com> escreveu:Ta usando com.actionbarsherlock.app.ActionBar.TabListener ?
Lúcio Maciel
luciofm@gmail.com
2012/5/23 Diego Ampessan <ampessann@gmail.com>Não tem esse método ! =S devo estar esquecendo de algo ou sendo muito desatento .....package br.com.diegoampessan.myreport.utils;import com.actionbarsherlock.app.ActionBar.Tab;import android.app.Activity;import android.app.FragmentManager;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentTransaction;
public class TabListener<T extends Fragment> implementscom.actionbarsherlock.app.ActionBar.TabListener {private Fragment mFragment;private final Activity mActivity;private final String mTag;private final Class<T> mClass;public TabListener(Activity activity, String tag, Class<T> clz) {mActivity = activity;mTag = tag;mClass = clz;mFragment = mActivity.getSupportFragmentManager().findFragmentByTag(mTag);if (mFragment != null && !mFragment.isDetached()) {FragmentTransaction ft = mActivity.getFragmentManager().beginTransaction();ft.detach(mFragment);ft.commit();}}public void onTabSelected(Tab tab, FragmentTransaction ft) {// Check if the fragment is already initializedif (mFragment == null) {// If not, instantiate and add it to the activitymFragment = Fragment.instantiate(mActivity, mClass.getName());ft.add(android.R.id.content, mFragment, mTag);} else {// If it exists, simply attach it in order to show itft.attach(mFragment);}}public void onTabUnselected(Tab tab, FragmentTransaction ft) {if (mFragment != null) {// Detach the fragment, because another one is being attachedft.detach(mFragment);}}public void onTabReselected(Tab tab, FragmentTransaction ft) {// User selected the already selected tab. Usually do nothing.}}Em 23 de maio de 2012 09:35, luciofm <luciofm@gmail.com> escreveu:mActivity.getSupportFragmentManager().findFragmentByTag()
Lúcio Maciel
luciofm@gmail.com
2012/5/23 Diego Ampessan <ampessann@gmail.com>Lucio ! tentei fazer porem sem sucesso.... usei o códigomFragment = mActivity.getFragmentManager().findFragmentByTag(mTag);
if (mFragment != null && !mFragment.isDetached()) {
FragmentTransaction ft = mActivity.getFragmentManager().beginTransaction();
ft.detach(mFragment);
ft.commit();
}Conforme o exemplo: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/FragmentTabs.htmlPorem estou usando o Fragment do android.support.v4 ... dai ele não deixa pede para eu usar o android.app.Fragment ... se eu mudo para ele ele da erro05-23 09:24:25.618: E/AndroidRuntime(9354): java.lang.NoSuchMethodError: android.app.Activity.getFragmentManagerEm 23 de maio de 2012 09:07, luciofm <luciofm@gmail.com> escreveu:
Diego, no construtor do seu TabListener, falta você procurar pela referencia de um possivel fragment já existente (e que o framework está fazendo o attach automaticamente).
mFragment = ft.findFragmentByTag(mTag)com isso no onTabSelected o mFragment vai ser diferente de null e vai só attacha-lo, sem criar um novo
Lúcio Maciel
luciofm@gmail.com
2012/5/23 Diego Ampessan <ampessann@gmail.com>Vamos ver por partes ...@Gink fiz o teste aqui e o teclado desaparece, o que aconteceu comigo é ele não abrir de novo se eu mudar de aba na mesma orientação .... não sei o porque disso...
@Renato, eu uso a versão 410 API 15 da library import do Sherlock e no meu projeto uso a API 15 tambem porem meu manifest está da seguinte forma:<uses-sdkandroid:minSdkVersion="7"android:targetSdkVersion="15" />funciona normalmente em aparelhos 2+@Lucio, o que pode ser o erro dele estar gerando o fragment de novo e jogando em cima novamente ? Procurei e não descobri nenhuma solução para isso ... será a versão 4.1.0 do Sherlock ?Em 22 de maio de 2012 23:10, rcsilva83@gmail.com <rcsilva83@gmail.com> escreveu:
Para usar o ActionBarSherlock 4, você deve definir a API level para 15 e terá compatibilidade para versões 2.1+.
No ABS 3, API level é 13 e compatibilidade para versões 1.6+.
Abraço!
--
Rodrigo
http://www.rodrigocarvalho.blog.br
2012/5/22 Renato Porto Puccini <renatoppuccini@gmail.com>Como nunca usei ActionBar, la vai a pergunta aproveitando esse topico,
Pra eu usar o Sherlock tenho que criar um projeto api level 14+ ?
E quando usar Sherlock junto com a api de compatibilidade automaticamente ira funcionar em aparelhos de APIs mais antigos (2.2 por exemplo)?
correto?
Renato2012/5/22 Gink Labrev <gink.labrev@gmail.com>
Diego,Vc usa algum editText dentro de algum dos fragments das tabs ?Notou que se alterar de aba, quando o teclado estiver em evidência, o teclado não desaparece ?2012/5/22 Diego Ampessan <ampessann@gmail.com>Entendi !Valeu Lucio :)2012/5/22 luciofm <luciofm@gmail.com>
Porque a SherlockActivity estende de Activity, e a não ser que você esteja usando em um API level > 11, você não terá acesso a Fragments direto da Activity, você precisa estender de FragmentActivity (ou no caso da sherlock de SherlockFragmentActivity).
Lúcio Maciel
luciofm@gmail.com
On Tue, May 22, 2012 at 10:13 AM, Diego Ampessan <ampessann@gmail.com> wrote:Resolvi !!mudei de :public class MenuActivity extends SherlockActivity {para:public class MenuActivity extends SherlockFragmentActivity {Agora o porque, não entendi ! mais funcionou ....2012/5/22 Diego Ampessan <ampessann@gmail.com>Alguem?Não consegui resolver ...2012/5/21 Diego Ampessan <ampessann@gmail.com>
NaactionBar.addTab(tab); ele estoura a exception05-21 15:59:53.869: E/AndroidRuntime(15444): FATAL EXCEPTION: main05-21 15:59:53.869: E/AndroidRuntime(15444): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.diegoampessan.myreport/br.com.diegoampessan.myreport.ui.MenuActivity}: java.lang.NullPointerException05-21 15:59:53.869: E/AndroidRuntime(15444): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)05-21 15:59:53.869: E/AndroidRuntime(15444): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)05-21 15:59:53.869: E/AndroidRuntime(15444): at android.app.ActivityThread.access$2300(ActivityThread.java:125)05-21 15:59:53.869: E/AndroidRuntime(15444): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)05-21 15:59:53.869: E/AndroidRuntime(15444): at android.os.Handler.dispatchMessage(Handler.java:99)05-21 15:59:53.869: E/AndroidRuntime(15444): at android.os.Looper.loop(Looper.java:123)05-21 15:59:53.869: E/AndroidRuntime(15444): at android.app.ActivityThread.main(ActivityThread.java:4627)05-21 15:59:53.869: E/AndroidRuntime(15444): at java.lang.reflect.Method.invokeNative(Native Method)05-21 15:59:53.869: E/AndroidRuntime(15444): at java.lang.reflect.Method.invoke(Method.java:521)05-21 15:59:53.869: E/AndroidRuntime(15444): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)05-21 15:59:53.869: E/AndroidRuntime(15444): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)05-21 15:59:53.869: E/AndroidRuntime(15444): at dalvik.system.NativeStart.main(Native Method)05-21 15:59:53.869: E/AndroidRuntime(15444): Caused by: java.lang.NullPointerException05-21 15:59:53.869: E/AndroidRuntime(15444): at br.com.diegoampessan.myreport.utils.TabListener.onTabSelected(TabListener.java:28)05-21 15:59:53.869: E/AndroidRuntime(15444): at com.actionbarsherlock.internal.app.ActionBarImpl.selectTab(ActionBarImpl.java:526)05-21 15:59:53.869: E/AndroidRuntime(15444): at com.actionbarsherlock.internal.app.ActionBarImpl.addTab(ActionBarImpl.java:452)05-21 15:59:53.869: E/AndroidRuntime(15444): at com.actionbarsherlock.internal.app.ActionBarImpl.addTab(ActionBarImpl.java:438)05-21 15:59:53.869: E/AndroidRuntime(15444): at br.com.diegoampessan.myreport.ui.MenuActivity.onCreate(MenuActivity.java:31)05-21 15:59:53.869: E/AndroidRuntime(15444): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)05-21 15:59:53.869: E/AndroidRuntime(15444): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)05-21 15:59:53.869: E/AndroidRuntime(15444): ... 11 more2012/5/21 Gink Labrev <gink.labrev@gmail.com>
Em qual linha da classe TabListener. ocorre o NULL EXCEPTION?2012/5/21 Diego Ampessan <ampessann@gmail.com>
Lucio, ta o Theme.Sherlock<activityandroid:name=".ui.MenuActivity"android:theme="@style/Theme.Sherlock" ></activity>--2012/5/21 luciofm <luciofm@gmail.com>Qual o theme da activity ?
Lúcio Maciel
luciofm@gmail.com
On Mon, May 21, 2012 at 3:12 PM, Diego Ampessan <ampessann@gmail.com> wrote:Pessoal, tenho essa classe implementada desta maneira mesmo ....public static class TabListener<T extends Fragment> implements ActionBar.TabListener {
private Fragment mFragment;
private final Activity mActivity;
private final String mTag;
private final Class<T> mClass;
/** Constructor used each time a new tab is created.
* @param activity The host Activity, used to instantiate the fragment
* @param tag The identifier tag for the fragment
* @param clz The fragment's Class, used to instantiate the fragment
*/
public TabListener(Activity activity, String tag, Class<T> clz) {
mActivity = activity;
mTag = tag;
mClass = clz;
}
/* The following are each of theActionBar.TabListenercallbacks */
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// Check if the fragment is already initialized
if (mFragment == null) {
// If not, instantiate and add it to the activity
mFragment = Fragment.instantiate(mActivity, mClass.getName());
ft.add(android.R.id.content, mFragment, mTag);
} else {
// If it exists, simply attach it in order to show it
ft.attach(mFragment);
}
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
if (mFragment != null) {
// Detach the fragment, because another one is being attached
ft.detach(mFragment);
}
}
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// User selected the already selected tab. Usually do nothing.
}
}Logo tenhopublic class MenuActivity extends SherlockActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);ActionBar actionBar = getSupportActionBar();actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);actionBar.setDisplayShowTitleEnabled(false);Tab tab = actionBar.newTab().setText("teste ola").setTabListener(new TabListener<DadosBasicosFragment>(this,"teste ola", DadosBasicosFragment.class));actionBar.addTab(tab);tab = actionBar.newTab().setText("teste 2").setTabListener(new TabListener<DadosBasicosFragment>(this, "teste 2",DadosBasicosFragment.class));actionBar.addTab(tab);}Porem ele me da um NULL EXCEPTION no actionBar na hora de adicionar o TAB .... alguem sabe porque ? acredito que seja no ActionBar actionBar = getSupportActionBar();meu DadosBasicosFragment está implementado da seguinte forma, bem simples ...public class DadosBasicosFragment extends Fragment {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubView view = inflater.inflate(R.layout.main, null);return view;}}Alguma ideia?-Att.Diego AmpessanMicrosoft MTA
www.diegoampessan.com.br
Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação - "Albert Einstein "
Att.Diego AmpessanMicrosoft MTA
www.diegoampessan.com.br
Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação - "Albert Einstein "
--Att.Diego AmpessanMicrosoft MTA
www.diegoampessan.com.br
Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação - "Albert Einstein "
--Att.Diego AmpessanMicrosoft MTA
www.diegoampessan.com.br
Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação - "Albert Einstein "
--Att.Diego AmpessanMicrosoft MTA
www.diegoampessan.com.br
Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação - "Albert Einstein "
--Att.Diego AmpessanMicrosoft MTA
www.diegoampessan.com.br
Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação - "Albert Einstein "
--Att.Diego AmpessanMicrosoft MTA
www.diegoampessan.com.br
Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação - "Albert Einstein "
--Att.Diego AmpessanMicrosoft MTA
www.diegoampessan.com.br
Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação - "Albert Einstein "
--Att.Diego AmpessanMicrosoft MTA
www.diegoampessan.com.br
Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação - "Albert Einstein "
--Att.Diego AmpessanMicrosoft MTA
www.diegoampessan.com.br
Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação - "Albert Einstein "
--Att.Diego AmpessanMicrosoft MTA
www.diegoampessan.com.br
Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação - "Albert Einstein "
Att.
Diego Ampessan Microsoft MTA
www.diegoampessan.com.br
Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação - "Albert Einstein "
www.diegoampessan.com.br
Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação - "Albert Einstein "






0 comentários:
Postar um comentário