내 주요 활동에는 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();
}
}
안녕하세요. 귀하의 노력에 감사드립니다. 그것은 내 코드와 매우 다른 것처럼 보이지만, 무엇이 무엇인지를 설명하지는 않습니다. 그래서 나는 무슨 일이 일어나고 있는지 정말로 이해하지 못합니다. 인 텐트가 탭 선택에 따라 여러 활동 중에서 선택하기가 정말로 어렵습니까? 이론적으로는 단순 해 보였습니다. 게다가 레이아웃이 괜찮 았고 질문에서 다루지 않았기 때문에 .java 형식으로 레이아웃 정보를 왜 썼는지 분명하지 않습니다. 어쩌면 당신은 당신의 추론이나 앞으로 일어나는 일의 단계를 설명 할 수 있습니다. 감사. – Azurespot
아, 힘들어하지 마세요. 너무 쉬우므로 탭 전환 만하려는 경우 .setContent (newIntent(). setClass (this, A.class))); 도움이 더 필요하면 알려주세요. –