Android 使用按钮在选项卡之间切换
有人知道如何创建一个按钮来帮助我在选项卡之间切换吗Android 使用按钮在选项卡之间切换,android,Android,有人知道如何创建一个按钮来帮助我在选项卡之间切换吗 Button button1 = (Button) findViewById(R.id.button1); button1.setOnClickListener(new OnClickListener() { public void onClick(View v) {{ // Perform action on click if (v.getId(
Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {{
// Perform action on click
if (v.getId() == R.id.button1) {
setContentView(R.layout.tab3);
}
else if (v.getId() == R.id.button1) {
setContentView(R.layout.main);
}
}
}
});
}}
这是我的tab 1中的代码,下一个代码是我的tab.xml中的按钮。我想按下下面的“购买”按钮,我想让它转到另一个选项卡,这可能吗
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/imageButton1"
android:text="Buy"
android:onClick="tab3" />
以下是对以下内容的解释:
创建主活动:
public class HelloTabWidget extends TabActivity
并为每个选项卡创建一个活动:
public class ArtistsActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textview = new TextView(this);
textview.setText("This is the Artists tab");
setContentView(textview); // you replace this with your layout for each view
}
}
在主活动(HelloTabWidget)中,启动TabHost:
TabHost tabHost = getTabHost();
并为每个选项卡添加选项卡规格:
intent = new Intent().setClass(this, ArtistsActivity.class);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("artists").setIndicator("Artists",
res.getDrawable(R.drawable.ic_tab_artists))
.setContent(intent);
tabHost.addTab(spec);
选择需要作为默认选项卡的选项卡:
tabHost.setCurrentTab(int index);
最后,应在包含按钮的选项卡的活动中设置按钮的onClickListener,以便:
intent = new Intent().setClass(this, ArtistsActivity.class);
startActivity(intent);
如果希望在所有选项卡之间切换,则此按钮应出现在所有选项卡中。以下是对以下内容的说明:
创建主活动:
public class HelloTabWidget extends TabActivity
并为每个选项卡创建一个活动:
public class ArtistsActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textview = new TextView(this);
textview.setText("This is the Artists tab");
setContentView(textview); // you replace this with your layout for each view
}
}
在主活动(HelloTabWidget)中,启动TabHost:
TabHost tabHost = getTabHost();
并为每个选项卡添加选项卡规格:
intent = new Intent().setClass(this, ArtistsActivity.class);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("artists").setIndicator("Artists",
res.getDrawable(R.drawable.ic_tab_artists))
.setContent(intent);
tabHost.addTab(spec);
选择需要作为默认选项卡的选项卡:
tabHost.setCurrentTab(int index);
最后,应在包含按钮的选项卡的活动中设置按钮的onClickListener,以便:
intent = new Intent().setClass(this, ArtistsActivity.class);
startActivity(intent);
如果希望在所有选项卡之间切换,则此按钮应出现在所有选项卡中。当您创建选项卡时,为它们提供一个标记,让我们在变量选项卡1中存储一个这样的标记。因此,在您的
onClick()
方法中,您可以通过以下方式选择该选项卡:
getTabHost().setCurrentTabByTag(TAB_1);
或者,正如midoalageb所写,通过索引:
getTabHost().setCurrentTab(index);
当您创建选项卡时,给它们一个标记,让我们在变量TAB_1中存储一个这样的标记。因此,在您的
onClick()
方法中,您可以通过以下方式选择该选项卡:
getTabHost().setCurrentTabByTag(TAB_1);
或者,正如midoalageb所写,通过索引:
getTabHost().setCurrentTab(index);
+1个Midoalageb和+1个Mark Gjol为您提供了切换选项卡所需的准确信息。他们遗漏的是您尝试执行的事件的代码。您需要做的是在
TAB1
上设置一个按钮,该按钮将有一个onClick()
监听器,该监听器将调用getTabHost().setCurrentTabByTag(TAB2)代码>或getTabHost().setCurrentTab(1)代码>。这两种方法中的任何一种都能很好地发挥作用,这取决于你想怎么做
您知道如何使用按钮和onClick()
侦听器吗?如果不是,谷歌有一些很好的例子。只需在选项卡视图中创建一个按钮,然后设置onClick,然后将代码放入其中,以便切换到所需的选项卡
这和这个非常相似,可能会帮助你
getTabHost().setCurrentTabByTag(TAB2)
这将查找标记为“TAB2”的选项卡并更改为该选项卡
getTabHost().setCurrentTab(1)
这将查找索引为“1”的选项卡并更改为该选项卡
关于您的xml
xml文件主要用于从视图的实现中抽象定义视图。这允许您或其他开发人员在需要时为代码提供不同的视图。它有助于提供一种使用模式的方法。然而,这种模式在Android中有点不同,但xml文件通常被认为是该模式中的视图
所以是的,如果要有多个按钮,则需要在xml中定义它们,并在代码中实现它们
关于您的按钮dilema
实际上,在头版为您提供了一个这样的例子。请记住,Android作为一个开发平台正在迅速成熟,而且很多这方面的东西实际上已经在网上得到了很好的证明。API文档也很好,并提供了很好的示例。去那个里看看,你们很可能会在那个里解决很多更容易的问题
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textview = new TextView(this);
textview.setText("This is Tab1");
setContentView(textview);
final Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
// perform the switch to tab event here for instance...
getTabHost().setCurrentTabByTag("TAB2");
}
});
}
+1个Midoalageb和+1个Mark Gjol为您提供了切换选项卡所需的准确信息。他们遗漏的是您尝试执行的事件的代码。您需要做的是在TAB1
上设置一个按钮,该按钮将有一个onClick()
监听器,该监听器将调用getTabHost().setCurrentTabByTag(TAB2)代码>或getTabHost().setCurrentTab(1)代码>。这两种方法中的任何一种都能很好地发挥作用,这取决于你想怎么做
您知道如何使用按钮和onClick()
侦听器吗?如果不是,谷歌有一些很好的例子。只需在选项卡视图中创建一个按钮,然后设置onClick,然后将代码放入其中,以便切换到所需的选项卡
这和这个非常相似,可能会帮助你
getTabHost().setCurrentTabByTag(TAB2)
这将查找标记为“TAB2”的选项卡并更改为该选项卡
getTabHost().setCurrentTab(1)
这将查找索引为“1”的选项卡并更改为该选项卡
关于您的xml
xml文件主要用于从视图的实现中抽象定义视图。这允许您或其他开发人员在需要时为代码提供不同的视图。它有助于提供一种使用模式的方法。然而,这种模式在Android中有点不同,但xml文件通常被认为是该模式中的视图
所以是的,如果要有多个按钮,则需要在xml中定义它们,并在代码中实现它们
关于您的按钮dilema
实际上,在头版为您提供了一个这样的例子。请记住,Android作为一个开发平台正在迅速成熟,而且很多这方面的东西实际上已经在网上得到了很好的证明。API文档也很好,并提供了很好的示例。去那个里看看,你们很可能会在那个里解决很多更容易的问题
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textview = new TextView(this);
textview.setText("This is Tab1");
setContentView(textview);
final Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
// perform the switch to tab event here for instance...
getTabHost().setCurrentTabByTag("TAB2");
}
});
}
对不起,我还是很困惑,你是什么意思?我假设你已经从代码中创建了一个按钮,并且想知道在onClick()
方法中放置什么。如果您有一个TabActivity,那么您将获得您的TabHost(对象cont