0

내 주요 활동에는 5 가지 선택 사항이있는 탭이 있습니다. 사용자가 탭 중 하나를 선택할뿐만 아니라 타이머를 설정하도록 SharedPreferences를 사용하여 지속성을 작성하려고 시도하는 중입니다. 그런 다음 해당 선택 항목이 저장되어 "시작"버튼이 눌려지면 다섯 가지 활동 중 하나가 표시됩니다. 밀고. 이 기능을 "시작"버튼에 대한 onClickListener의 인 텐트에 작성하려고합니다. 그러면 현재 선택된 탭을 사용하고 해당 탭과 관련된 활동으로 이동합니다. 5 개의 탭에는 모두 자신 만의 테마 활동이 있습니다 (탭을 클릭하는 것이 아니라 "시작"버튼). 내 의도 코드가 어떻게 나타나야합니까?의도 (Intent)를 사용하여 다섯 가지 (탭을 통해 선택된 사용자) 활동 중 하나에 어떻게 가야합니까?

나는 활동의 선택이 코드의 새로운 Intent() 부분의 두 번째 매개 변수에 들어가야한다고 생각했는데, 그 이유는 그것이 어떤 클래스로 갈지 결정했기 때문이다 (지금은 거기에 "더미" 하지만 변경해야합니다). 그러나 사용자가 선택한 항목 (현재 선택되어있는 탭)을 기반으로해야하기 때문에 어떻게 든 말해야합니다. 그러나 어떻게해야합니까? 아니면 내 의도적 인 의도 (필자의 제한적인 이해로 인 텐트가 여러 가지 요소 중에서 선택하여 최선의 활동을 결정할 수 있도록 함)를 작성하는 대답입니까?

아직 설정되어있는 타이머에 대해 저장되고 전달 된 값을 쓰지 않으므로 저장중인 탭 선택에 초점을 맞추고 지금은 Intent를 통과해야합니다. 당신의 도움을 주셔서 감사합니다.

P. 내 SharedPreferences 코드가 맞는지 확실하지 않아 뭔가 잘못되었다고 생각하면 변경 사항을 제안합니다.

참고 :이 질문이 명확하지 않은 경우 제발 알려 주시기 바랍니다. 이것은 내가 그것을 물어 본 두 번째 시간 (마지막 시간에서 단순화 된)이고 지금까지는 응답을 얻지 못하고 있습니다. 필자는 하나의 탭 선택에서 인 텐트를 거쳐 해당 탭 선택과 관련된 활동 (다섯 가지 선택 중 하나)에 이르는 방법을 알아야합니다. 인 텐트가이 선택을위한 여지를 어떻게 허용 할 수 있습니까? 나는 다른 이유로 (타이머) SharedPreferences를 사용해야 만하지만 정말로,이 게시는 의도를 올바르게 작성하는 방법에 관한 것이므로 SharedPreferences 부분에서 너무 복잡해지지 않도록하십시오. 누군가가 대답을 시도 할 수 있다면, 나는 매우 감사 할 것입니다, 미리 감사드립니다 !!

MainSelectorActivity.java

package com.azurespot.disastertimer.app; 

import android.content.Intent; 
import android.content.SharedPreferences; 
import android.content.res.Resources; 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentTabHost; 
import android.view.View; 
import android.widget.Button; 

import com.azurespot.disastertimer.app.tabs.GodzillaTab; 
import com.azurespot.disastertimer.app.tabs.NuclearTab; 
import com.azurespot.disastertimer.app.tabs.TsunamiTab; 
import com.azurespot.disastertimer.app.tabs.VolcanoTab; 
import com.azurespot.disastertimer.app.tabs.ZombieTab; 


public class MainSelectorActivity extends FragmentActivity { 

    Resources resrc; 
    FragmentTabHost tabHost; 
    private Button btnStart; 
    public static final String TABTIMER = "Tab_and_Timer"; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main_selector); 

     tabSetUp(); 

     btnStart = (Button) findViewById(R.id.btnStart); 
     btnStart.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(getApplicationContext(), 
         MediaActivity.class); 
       startActivity(i); 
      } 
     }); 

     tabAndTimerPersist(); 

    } 

    public void tabSetUp() { 
     resrc = getResources(); 

     // TabHost setup & functionality 
     tabHost = (android.support.v4.app.FragmentTabHost)findViewById(android.R.id.tabhost); 
     tabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent); 

     //------Zombie tab------ 
     //Creates tab and sets zombie image in view 
     tabHost.addTab(tabHost.newTabSpec("zombie").setIndicator("", 
         getResources().getDrawable(R.drawable.ic_tab_zombie_selected)), 
       ZombieTab.class, null); 

     //------Nuclear tab------ 
     //Creates tab and sets nuclear image in view 
     tabHost.addTab(tabHost.newTabSpec("nuclear").setIndicator("", 
         getResources().getDrawable(R.drawable.ic_tab_nuclear_selected)), 
       NuclearTab.class, null); 

     //------Tsunami tab------ 
     //Creates tab and sets tsunami image in view 
     tabHost.addTab(tabHost.newTabSpec("tsunami").setIndicator("", 
         getResources().getDrawable(R.drawable.ic_tab_tsunami_selected)), 
       TsunamiTab.class, null); 

     //------Godzilla tab------ 
     //Creates tab and sets tsunami image in view 
     tabHost.addTab(tabHost.newTabSpec("godzilla").setIndicator("", 
         getResources().getDrawable(R.drawable.ic_tab_godzilla_selected)), 
       GodzillaTab.class, null); 

     //------Volcano tab------ 
     //Creates tab and sets volcano image in view 
     tabHost.addTab(tabHost.newTabSpec("volcano").setIndicator("", 
         getResources().getDrawable(R.drawable.ic_tab_volcano_selected)), 
       VolcanoTab.class, null); 

     //set Zombie tab as default (zero based) 
     tabHost.setCurrentTab(0); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     tabAndTimerPersist(); 
    } 

    private void tabAndTimerPersist() { 

     SharedPreferences prefs = getSharedPreferences(TABTIMER, MODE_PRIVATE); 

     tabHost.getCurrentTab(); 

     SharedPreferences.Editor editor = prefs.edit(); 
     editor.putInt("zombie", 0); 
     editor.putInt("nuclear", 0); 
     editor.putInt("tsunami", 0); 
     editor.putInt("godzilla", 0); 
     editor.putInt("volcano", 0); 
     editor.commit(); 
    } 
} 

enter image description here

답변

0
TabHost tabHost; 
Intent intent; 
TabHost.TabSpec spec; 
Resources res; 
      spec = tabHost.newTabSpec("A") 
      .setIndicator(getTabView("A","#333333")) 
      .setContent(new Intent().setClass(this,A.class)); 
    tabHost.addTab(spec); 

    spec = tabHost 
      .newTabSpec("B") 
      .setIndicator(getTabView("B","#ffffff")) 
      .setContent(new Intent().setClass(this,B.class)); 
    tabHost.addTab(spec); 
     tabHost.setCurrentTab(1); 
     setTabColor(tabHost); 

// 당신의 탭 변경 청취자 전화 setTabColor에 (tabHost);

private View getTabView(String text, String color) 
{ 
    LayoutInflater inf_manifesto=getLayoutInflater(); 
    View v=inf_manifesto.inflate(R.layout.customt_tab, null); 
     TextView t = (TextView)v.findViewById(R.id.txt); 
    t.setText(text); 
    t.setTextColor(Color.parseColor(color)); 

    return v; 
} 
    public static void setTabColor(TabHost tabhost) 
{ 
    for(int i=0;i<tabhost.getTabWidget().getChildCount();i++) 
    { 

tabhost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#3d99d1")); 
     TextView tv1 = (TextView)tabhost.getTabWidget().getChildAt(i).findViewById(R.id.txt); 
     tv1.setTextColor(Color.parseColor("#ffffff")); 

    } 
    tabhost.getTabWidget().getChildAt(tabhost.getCurrentTab()).setBackgroundColor(Color.parseColor("#ffffff")); // selected 
    TextView tv2 = (TextView)tabhost.getTabWidget().getChildAt(tabhost.getCurrentTab()).findViewById(R.id.txt); 
    tv2.setTextColor(Color.parseColor("#333333")); 

} 

이렇게하면 탭을 만들 수 있습니다.

+0

안녕하세요. 귀하의 노력에 감사드립니다. 그것은 내 코드와 매우 다른 것처럼 보이지만, 무엇이 무엇인지를 설명하지는 않습니다. 그래서 나는 무슨 일이 일어나고 있는지 정말로 이해하지 못합니다. 인 텐트가 탭 선택에 따라 여러 활동 중에서 선택하기가 정말로 어렵습니까? 이론적으로는 단순 해 보였습니다. 게다가 레이아웃이 괜찮 았고 질문에서 다루지 않았기 때문에 .java 형식으로 레이아웃 정보를 왜 썼는지 분명하지 않습니다. 어쩌면 당신은 당신의 추론이나 앞으로 일어나는 일의 단계를 설명 할 수 있습니다. 감사. – Azurespot

+0

아, 힘들어하지 마세요. 너무 쉬우므로 탭 전환 만하려는 경우 .setContent (newIntent(). setClass (this, A.class))); 도움이 더 필요하면 알려주세요. –