不同的选项卡里面的按钮 [英] buttons inside different tabs
本文介绍了不同的选项卡里面的按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有三个标签,每一个延伸活动和实现View.OnClickListener
当我选择了一些选项卡,然后点击一个按钮时,OnClickListener落实到SomeTabActivity不起作用。为什么?
我需要做的创建我活动怎么样?
我选择一些片每次我需要开始新的活动?
我的code:
//主要活动
公共类TripoidActivity扩展TabActivity { @覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.main);
在里面();
} 私人无效的init(){
最后TabHost tabHost =(TabHost)findViewById(android.R.id.tabhost);
tabHost.setup();
最终资源解析度= getResources(); createTabA(tabHost,RES);
createTabB(tabHost,RES);
createTabC(tabHost,RES); }}
//标签A活性
公共类TabAActivity扩展活动实现View.OnClickListener {
@覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
在里面();
} 私人无效的init(){
buttonAddItem =(按钮)findViewById(R.id.btAddItem);
buttonAddItem.setOnClickListener(TabAActivity.this);
} @覆盖
公共无效的onClick(视图v){
//做一些事情(显示举杯MSG)
} }
//主要布局XML
<?XML版本=1.0编码=UTF-8&GT?;
< TabHost的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:ID =@机器人:ID / tabhost
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT> <的LinearLayout
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:方向=垂直
机器人:填充=5DP> < TabWidget
机器人:ID =@机器人:ID /标签
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT/> <的FrameLayout
机器人:ID =@机器人:ID / tabcontent
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:填充=5DP> <包括布局=@布局/ tab_a/>
<包括布局=@布局/ tab_b/>
<包括布局=@布局/ tab_c/> < /&的FrameLayout GT;
< / LinearLayout中>
< / TabHost>
解决方案
试试这个...
主要活动
公共类TabWidgetExampleActivity扩展TabActivity {
/ **当第一次创建活动调用。 * /@覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.main); 资源解析度= getResources(); //资源对象获取可绘制
TabHost tabHost = getTabHost(); //活动TabHost
TabHost.TabSpec规范; // Resusable则tabspec为每个标签
意图意图; //可重用的意图为每个标签 //创建一个Intent来启动一个活动的标签(重复使用)
意图=新意图()setClass(这一点,DailyActivity.class)。 //初始化则tabspec每个选项卡,并把它添加到TabHost
规格= tabHost.newTabSpec(人民日报)。setIndicator(,
res.getDrawable(R.drawable.tab_daily))
.setContent(意向);
tabHost.addTab(规范); //做其他选项卡相同
意图=新意图()setClass(这一点,MapActivity.class)。
规格= tabHost.newTabSpec(地图)。setIndicator(,
res.getDrawable(R.drawable.tab_map))
.setContent(意向);
tabHost.addTab(规范); 意图=新意图()setClass(这一点,HourlyActivity.class)。
规格= tabHost.newTabSpec(每小时)。setIndicator(,
res.getDrawable(R.drawable.tab_hour))
.setContent(意向);
tabHost.addTab(规范);
}
}
标签活动
公共类HourlyActivity延伸活动{
公共无效的onCreate(捆绑savedInstanceState)
{
super.onCreate(savedInstanceState);
最终按钮BTN =新按钮(本);
btn.setText(链接);
最终的LinearLayout L1 =新的LinearLayout(本);
btn.setOnClickListener(新OnClickListener(){ 公共无效的onClick(视图v){
// TODO自动生成方法存根
Toast.makeText(getApplicationContext(),海,Toast.LENGTH_LONG).show(); 意图I =新意图();
i.setClass(getApplicationContext(),MapActivity.class);
startActivity(ⅰ);
}
});
的setContentView(BTN);
} }
I have three tabs and each one extends Activity and implements View.OnClickListener When I selected some tab and click on a button, the OnClickListener implemented into SomeTabActivity doesn't work. Why? What I need to do to create my activity? Every time that I select some tab I need start new activity?
My code:
//the main activity
public class TripoidActivity extends TabActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init() {
final TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost);
tabHost.setup();
final Resources res = getResources();
createTabA(tabHost, res);
createTabB(tabHost, res);
createTabC(tabHost, res);
}
}
//the tab A activity
public class TabAActivity extends Activity implements View.OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
}
private void init() {
buttonAddItem = (Button) findViewById(R.id.btAddItem);
buttonAddItem.setOnClickListener(TabAActivity.this);
}
@Override
public void onClick(View v) {
//do something (show a toast msg)
}
}
//the main layout xml
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="5dp" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" >
<include layout="@layout/tab_a" />
<include layout="@layout/tab_b" />
<include layout="@layout/tab_c" />
</FrameLayout>
</LinearLayout>
</TabHost>
解决方案
Try This...
Main Activity
public class TabWidgetExampleActivity extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Resusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, DailyActivity.class);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("Daily").setIndicator("",
res.getDrawable(R.drawable.tab_daily))
.setContent(intent);
tabHost.addTab(spec);
// Do the same for the other tabs
intent = new Intent().setClass(this, MapActivity.class);
spec = tabHost.newTabSpec("Map").setIndicator("",
res.getDrawable(R.drawable.tab_map))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, HourlyActivity.class);
spec = tabHost.newTabSpec("Hourly").setIndicator("",
res.getDrawable(R.drawable.tab_hour))
.setContent(intent);
tabHost.addTab(spec);
}
}
Tab Activity
public class HourlyActivity extends Activity{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
final Button btn=new Button(this);
btn.setText("button");
final LinearLayout l1=new LinearLayout(this);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "hai", Toast.LENGTH_LONG).show();
Intent i=new Intent();
i.setClass(getApplicationContext(), MapActivity.class);
startActivity(i);
}
});
setContentView(btn);
}
}
这篇关于不同的选项卡里面的按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文