我有一个班级,我在其中创建了三个标签Tab。
代码如下
public class Tab extends TabActivity{
public void onCreate (Bundle savedinstanceState){
super.onCreate(savedinstanceState);
setContentView(R.layout.tab);
Bundle bundle = getIntent().getExtras();
String idReunion = bundle.getString("idReunion");
String nombreProyecto = bundle.getString("nombre_proyecto");
TabHost tabHost = getTabHost();
TabHost.TabSpec spec;
Intent intent;
Resources res = getResources();
intent = new Intent();
intent.putExtra("idReunion", idReunion);
intent.putExtra("nombre_proyecto",nombreProyecto);
intent.setClass(this, PestanaSinAsignar.class);
spec = tabHost.newTabSpec("Pestaña 1").setIndicator("Sin asignar").setContent(intent);
tabHost.addTab(spec);
intent.putExtra("idReunion", idReunion);
intent.putExtra("nombre_proyecto",nombreProyecto);
intent.setClass(this, PestanaAsignadas.class);
spec = tabHost.newTabSpec("Pestaña 2").setIndicator("Asignadas").setContent(intent);
tabHost.addTab(spec);
intent.putExtra("idReunion", idReunion);
intent.putExtra("nombre_proyecto",nombreProyecto);
intent.setClass(this, PestanaAsignadaOtros.class);
spec = tabHost.newTabSpec("Pestaña 3").setIndicator("AsignadasUsuarios").setContent(intent);
tabHost.addTab(spec);
}
}
问题是,当我单击选项卡时,两个或三个总是执行代码PestanaAsignadaOtros类,这是与选项卡三相关联的类。
按下选项卡两次运行PestanaAsignadas类代码是合乎逻辑的,如果我单击选项卡,则运行类代码AsignadaOtros Pestana。
为什么总是运行PestanaAsignadaOtros代码?
答案 0 :(得分:2)
您需要为每个标签创建不同的意图,目前您尝试将相同的意图用于三个不同的目的:
TabHost tabHost = getTabHost();
// First Tab
TabSpec firstspec = tabHost.newTabSpec("List");
// setting Title for the Tab
listspec.setIndicator("List View");
Intent firstIntent = new Intent(this, AddressActivity.class);
firstIntent.putExtra("Position", position);
firstspec.setContent(firstIntent );
// Second Tab
TabSpec secondspec = tabHost.newTabSpec("Map");
secondspec.setIndicator("Map View");
Intent secondIntent = new Intent(this, MapActivity.class);
secondIntent.putExtra("Position", position);
secondspec.setContent(secondIntent );
TabSpec thirdspec = tabHost.newTabSpec("Third");
thirdspec.setIndicator("Third View");
Intent thirdIntent = new Intent(this, ThirdActivity.class);
thirdIntent.putExtra("Position", position);
thirdspec.setContent(thirdIntent );
// Adding all TabSpec to TabHost
tabHost.addTab(firstspec); // First tab
tabHost.addTab(secondspec); // Second tab
tabHost.addTab(thirdspec); // Third Tab
答案 1 :(得分:1)
您对所有3个标签使用相同的意图。调用setContent后对intent的更改仍会发生。相反,您应该创建3个意图,像上面一样设置它们的属性,并使用setContent添加它们。